Что-то я не понимаю как оно будет работать...nkp писал(а):а что скажешь про то - что мы тут чудим?? (последний вариант)
O<clamp> sub
M66 E0 L0 ;--- смотрим, что на аналоговом пине ( abs(cmd-fb) )
O<m66> if [#5399 LE 0.1] ;--- если < 0.1 то
M64 P05 ; --- то выдаем на 05 вывод 1 класс.
O<m66> else
M66 E0 L0 ;--- если нет то опять смотрим, что на пине и все... т.е. продолжаем выполнять код...
O<m66> endif
O<clamp> endsub
ИМХО правильнее всего сделать через near - так можно отследить тот момент, когда мы точно подойдем на нужное расстояние. И сразу после этого продолжить выполнение.
Функция будет тогда такая
Код: Выделить всё
O<clamp> sub
M66 P0 L1 Q10 ;--- Именно ждем, растущий фронт 1
O<m66> if [#5399 LT 0] ;--- если < 0 то не дождались его за 10 секунд - встаем на АВОСТ
M64 PХХ ;--- сюда номер пина
O<m66> endif
O<clamp> endsubИ больше ничего не надо.
В вашем случае надо писать цикл на ожидание 0 на аналоговом пине. По аналоговым пинам нет есть только один режим input - L0 Mode 0: IMMEDIATE - no waiting, returns immediately. The current value of the input is stored in parameter #5399.
