From 9d3573134462335051e46b990e97e1d32bef4b29 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 31 Mar 2008 13:03:47 +0200 Subject: * digital/io/src: - adapted FSM to AVR program. --- digital/io/src/fsm_templates/template_fsm.h | 52 +++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 digital/io/src/fsm_templates/template_fsm.h (limited to 'digital/io/src/fsm_templates/template_fsm.h') diff --git a/digital/io/src/fsm_templates/template_fsm.h b/digital/io/src/fsm_templates/template_fsm.h new file mode 100644 index 00000000..9ac98895 --- /dev/null +++ b/digital/io/src/fsm_templates/template_fsm.h @@ -0,0 +1,52 @@ +#ifndef %(prefix)s_fsm_h +#define %(prefix)s_fsm_h +/* + * THIS IS AN AUTOMATICALLY GENERATED FILE, DO NOT EDIT! + * + * %(name)s + * +%(*comments)s */ + +/* %(name)s states. */ +enum %(prefix)s_state_t +{ +%(states)s %(PREFIX)s_STATE_NB +}; + +/* %(name)s events. */ +enum %(prefix)s_event_t +{ +%(events)s %(PREFIX)s_EVENT_NB +}; + +/* This macro enables checks for branches used in the wrong state/event + * combination. */ +#ifdef HOST +# define _BRANCH(state, event, to) \ + ((%(PREFIX)s_STATE_ ## state) << 16 \ + | (%(PREFIX)s_EVENT_ ## event) << 8 \ + | (%(PREFIX)s_STATE_ ## to)) +#else +# define _BRANCH(state, event, to) \ + ((%(PREFIX)s_STATE_ ## to)) +#endif + +/* %(name)s branches. */ +enum %(prefix)s_branch_t +{ +%(branches)s}; + +#undef _BRANCH + +/* Value to return to follow the only branch. */ +#define %(prefix)s_next(state, event) \ + %(PREFIX)s_BRANCH__ ## state ## __ ## event ## __ + +/* Value to return to follow a given branch. */ +#define %(prefix)s_next_branch(state, event, branch) \ + %(PREFIX)s_BRANCH__ ## state ## __ ## event ## __ ## branch + +/* %(name)s context. */ +extern fsm_t %(prefix)s_fsm; + +#endif /* %(prefix)s_fsm_h */ -- cgit v1.2.3