added safety timeout for motor control
This commit is contained in:
parent
08d79cdcb8
commit
aee4312fc6
1 changed files with 4 additions and 3 deletions
|
@ -126,11 +126,12 @@ def motor_hor(*opts):
|
|||
_motorctrl(scroll_h, *opts)
|
||||
return 'OK'
|
||||
|
||||
def _motorctrl(scroll: Scroll, steps: int, *opts):
|
||||
def _motorctrl(scroll: Scroll, steps: int, timeout_ms: int = 500, *opts):
|
||||
end = scroll.c + steps
|
||||
print(f'motorctrl, end={end}, scroll.c={scroll.c}')
|
||||
try:
|
||||
while True:
|
||||
startime = time.ticks_ms()
|
||||
while time.ticks_diff(startime, time.ticks_ms()) < timeout_ms:
|
||||
err = end - scroll.c
|
||||
if abs(err) > 4:
|
||||
speed = (err / (2 * steps)) + 0.5
|
||||
|
@ -138,7 +139,7 @@ def _motorctrl(scroll: Scroll, steps: int, *opts):
|
|||
else:
|
||||
scroll.speed = 0
|
||||
break
|
||||
time.sleep_ms(5)
|
||||
time.sleep_us(50)
|
||||
finally:
|
||||
scroll.speed = 0
|
||||
|
||||
|
|
Loading…
Reference in a new issue