появилась маааленькая проблема. Убрал задержку из функции. В этом условие(
waitms 250):
- Код: Выделить всё • Развернуть
If Sharp_a02 = 1 Then : Gosub Разворот_влево : waitms 250 : Else : Gosub Вперёд : End If
Было:
- Код: Выделить всё • Развернуть
Sharp_right:
Declare Function Sharp_a02(byval 0 As Bit) As Bit
Function Sharp_a02(byval 0 As Bit) As Bit
Local АЦП As Word
Start Adc : АЦП = Getadc(0) 'Sharp connected for example to PA=0(ADC0)
Stop Adc
If АЦП < 850 Then : Sharp_a02 = 0 : Else : Sharp_a02 = 1 : End If
If Sharp_a02 = 1 Then : Gosub Разворот_влево : waitms 250 : Else : Gosub Вперёд : End If
End Function
Стало:
- Код: Выделить всё • Развернуть
Sharp_right:
Declare Function Sharp_a02(byval 0 As Bit) As Bit
Function Sharp_a02(byval 0 As Bit) As Bit
Local АЦП As Word
Start Adc : АЦП = Getadc(0) 'Sharp connected for example to PA=0(ADC0)
Stop Adc
If АЦП < 850 Then : Sharp_a02 = 0 : Else : Sharp_a02 = 1 : End If
If Sharp_a02 = 1 Then : Gosub Разворот_влево : Else : Gosub Вперёд : End If
End Function
И теперь даже, если есть препятствие серва продолжает крутится. Когда задержка была серва, останавливалась только на указанное время задержки.
Мне надо сделать так чтобы пока есть препятствие робот разворачивался, а серва в этот момент стояла на месте, до тех пор пока препятствие не станет. По условию выполняется только разворот робота, а серва продолжает крутиться. Пробовал делать выход из цикла вращения сервы и остановку не помогло. Пробовал и др. варианты типо изменения переходов в подпрограммы или сделать, то что мне надо за счёт условий, но без результатно, если кто знает как мне остановить серву в момент разворота, то подскажите пожалуйста.