summaryrefslogtreecommitdiff
path: root/usb-i2c-sl018/statemachine.c
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-02-07 00:51:15 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-02-07 00:51:15 +0000
commit048e16a12bf926cc122899dd96f1ba34fb5d7912 (patch)
tree71e813720cd8df16e84be3267eb1a80e85d1cd97 /usb-i2c-sl018/statemachine.c
parentstepper respects limits now (diff)
fixed state machine
git-svn-id: https://svn.spreadspace.org/avr/trunk@163 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-i2c-sl018/statemachine.c')
-rw-r--r--usb-i2c-sl018/statemachine.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/usb-i2c-sl018/statemachine.c b/usb-i2c-sl018/statemachine.c
index 9a43385..77fb9cd 100644
--- a/usb-i2c-sl018/statemachine.c
+++ b/usb-i2c-sl018/statemachine.c
@@ -98,12 +98,8 @@ void statemachine_task_limits(void)
return;
}
case closing:
- if(limits == close)
- return change_state(closed);
break;
case opening:
- if(limits == open)
- return change_state(opened);
break;
}
}
@@ -117,9 +113,16 @@ void statemachine_task_event(void)
switch(state) {
case closing:
case opening:
- if(event==move_timeout)
- {
- return change_state(state==opening?timeout_after_open:timeout_after_close);
+ switch(event) {
+ case open_fin:
+ return change_state(opened);
+ case close_fin:
+ return change_state(closed);
+ case move_timeout:
+ return change_state(state==opening?timeout_after_open:timeout_after_close);
+ default:
+ printf("Error: event %d not allowed in state %d\n\r", event, state);
+ return;
}
case reset:
case error:
@@ -144,6 +147,11 @@ void statemachine_task_event(void)
(state==closed || state == timeout_after_close) ?
opening:
closing);
+ case open_fin:
+ case close_fin:
+ case move_timeout:
+ printf("Error: event %d not allowed in state %d\n\r", event, state);
+ return;
}
}