а если все таймеры заняты? Я еще не научился на один таймер и сервы и датчики, а еще Rc5 нужен таймер, а если импульсы захотим посчитать...
Мысль то я уловил, но все же, было бы удобнее, если с датчика приходит сразу 1 или 0 (особенно для начинающих
)
Кстати, у меня получилось так, если опрашивать по одному датчику, то все работает:
- Код: Выделить всё
Левый верхний:
Config Portd.4 = Output : Set Portd.4 : Waitms 3
Config Portd.4 = Input : Reset Portd.4 : Waitms 3
If Pind.4 = 1 Then : Lv = 0 : Else : Lv = 1 : End If
Return
Левый нижний:
Config Portd.6 = Output : Set Portd.6 : Waitms 3
Config Portd.6 = Input : Reset Portd.6 : Waitms 3
If Pind.6 = 1 Then : Ln = 0 : Else : Ln = 1 : End If
Return
Правый верхний:
Config Portd.5 = Output : Set Portd.5 : Waitms 3
Config Portd.5 = Input : Reset Portd.5 : Waitms 3
If Pind.5 = 1 Then : Pv = 0 : Else : Pv = 1 : End If
Return
Правый нижний:
Config Portd.7 = Output : Set Portd.7 : Waitms 3
Config Portd.7 = Input : Reset Portd.7 : Waitms 3
If Pind.7 = 1 Then : Pn = 0 : Else : Pn = 1 : End If
Return
а, если сделать так:
- Код: Выделить всё
Config Portd.4 = Output : Set Portd.4
Config Portd.6 = Output : Set Portd.6
Config Portd.5 = Output : Set Portd.5
Config Portd.7 = Output : Set Portd.7
Waitms 3
Config Portd.4 = Input : Reset Portd.4
Config Portd.6 = Input : Reset Portd.6
Config Portd.5 = Input : Reset Portd.5
Config Portd.7 = Input : Reset Portd.7
Waitms 3
If Pind.4 = 1 Then : Lv = 0 : Else : Lv = 1 : End If
If Pind.6 = 1 Then : Ln = 0 : Else : Ln = 1 : End If
If Pind.5 = 1 Then : Pv = 0 : Else : Pv = 1 : End If
If Pind.7 = 1 Then : Pn = 0 : Else : Pn = 1 : End If
то нифига не работает, бился с этим целый день, потом забил.
Итого, на опрос всех датчиков (у меня), уходило 6*4=24мс, довольно большое время
П.С.
ALHIMIK писал(а):2паштет а чего там опрашивать?
выставить флажок (в прерывании по таймеру) - опроси датчики
в бесконечном цикле проверяй флажжки
=DeaD= писал(а):+1
Используй прерывания по таймеру и всё.
буду учится на своих ошибках