diff --git a/EmbeddedSystemsTHM/StopLight.c b/EmbeddedSystemsTHM/StopLight.c index e7674f5..2f80645 100644 --- a/EmbeddedSystemsTHM/StopLight.c +++ b/EmbeddedSystemsTHM/StopLight.c @@ -14,7 +14,7 @@ enum{ S1_GREEN, S1_YELLOW, S1_RED, S1_RED_YELLOW, S2_GREEN, S2_YELLOW, S2_RED, S2_RED_YELLOW, - INIT, + INIT, WAIT } StoplightState = INIT; /* Emus for the stoplight task (task 3) */ @@ -25,13 +25,7 @@ enum{ ---------------------------------- SL 1 | Led1 | Led4 | Led6 SL 2 | Led2 | Led5 | Led7 - -General rundown: - - State is entered - - Wait till delay is passed - - Switch off running LEDs - - Switch on new LEDs - - Set next state + */ uint16_t g_startMS; @@ -133,6 +127,10 @@ runStopLightTask2(void) setS1ToGreen(); setS2ToRed(); + StoplightState = WAIT; + break; + + case WAIT: if(Taster1_get()) { g_startMS=Timer_getTick(); StoplightState = S1_YELLOW; @@ -186,9 +184,9 @@ runStopLightTask2(void) setS1ToGreen(); // Wait 30 seconds before allowing the button to be pressed again - if( (Timer_getTick() - g_startMS >= delayLong) && Taster1_get()) { + if(Timer_getTick() - g_startMS >= delayLong) { g_startMS=Timer_getTick(); - StoplightState = S1_YELLOW; + StoplightState = WAIT; } break; }