X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fballboard%2Fstate.c;h=f9a5f8a7f9fa9c9a9df8cf41886cb0cc2f07e477;hp=0492e1855991c61e94fb972aa1bb6b0e76a50151;hb=aa68be2d5d596693bda1109e4ccd6489f613b4f7;hpb=6914527de2ecfef9d790740c71739e7418246b96 diff --git a/projects/microb2010/ballboard/state.c b/projects/microb2010/ballboard/state.c index 0492e18..f9a5f8a 100644 --- a/projects/microb2010/ballboard/state.c +++ b/projects/microb2010/ballboard/state.c @@ -56,7 +56,7 @@ static struct vt100 local_vt100; static volatile uint8_t state_mode; -static uint8_t ball_count; +static volatile uint8_t ball_count; /* short aliases */ #define INIT I2C_BALLBOARD_MODE_INIT @@ -82,6 +82,7 @@ uint8_t state_get_ball_count(void) return ball_count; } +#if 0 static void state_debug_wait_key_pressed(void) { if (!state_debug) @@ -89,6 +90,7 @@ static void state_debug_wait_key_pressed(void) printf_P(PSTR("press a key\r\n")); while (!cmdline_keypressed()); } +#endif /* set a new state, return 0 on success */ int8_t state_set_mode(uint8_t mode) @@ -128,7 +130,7 @@ uint8_t state_get_mode(void) /* harvest balls from area */ static void state_do_harvest(void) { - state_debug_wait_key_pressed(); + //state_debug_wait_key_pressed(); roller_on(); } @@ -142,13 +144,20 @@ static void state_do_eject(void) /* main state machine */ void state_machine(void) { + uint8_t mode = 0; + while (state_want_exit() == 0) { + if (state_mode != mode) { + mode = state_mode; + STMCH_DEBUG("%s(): mode=%x ", __FUNCTION__, mode); + } + switch (state_mode) { case INIT: - state_mode = OFF; state_init(); + state_mode = OFF; break; case OFF: