summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usb-i2c-sl018/statemachine.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/usb-i2c-sl018/statemachine.c b/usb-i2c-sl018/statemachine.c
index 4ed9a11..037eee2 100644
--- a/usb-i2c-sl018/statemachine.c
+++ b/usb-i2c-sl018/statemachine.c
@@ -41,9 +41,15 @@ void change_state(state_t new_state)
case reset:
break;
case closed: ledmatrix(red); break;
- case closing: ledmatrix(red_moving); break;
+ case closing:
+ ledmatrix(red_moving);
+ start_stepper(dir_close);
+ break;
case opened: ledmatrix(green); break;
- case opening: ledmatrix(green_moving); break;
+ case opening:
+ ledmatrix(green_moving);
+ start_stepper(dir_open);
+ break;
case timeout_after_open: ledmatrix(green_blink); break;
case timeout_after_close: ledmatrix(red_blink); break;
case error: ledmatrix(rg_blink); break;
@@ -83,6 +89,14 @@ void statemachine_task_limits(void)
case manual_movement:
case timeout_after_open:
case timeout_after_close:
+ switch(limits) {
+ case open:
+ return change_state(opened);
+ case close:
+ return change_state(closed);
+ default:
+ return;
+ }
case closing:
if(limits == close)
return change_state(closed);