Added WAIT state to runStopLightTask2 to be closer to the intended solution

This commit is contained in:
_N0x 2021-11-11 18:46:37 +01:00
parent 1720365a53
commit e9058086ca

View File

@ -14,7 +14,7 @@
enum{ enum{
S1_GREEN, S1_YELLOW, S1_RED, S1_RED_YELLOW, S1_GREEN, S1_YELLOW, S1_RED, S1_RED_YELLOW,
S2_GREEN, S2_YELLOW, S2_RED, S2_RED_YELLOW, S2_GREEN, S2_YELLOW, S2_RED, S2_RED_YELLOW,
INIT, INIT, WAIT
} StoplightState = INIT; /* Emus for the stoplight task (task 3) */ } StoplightState = INIT; /* Emus for the stoplight task (task 3) */
@ -133,6 +133,10 @@ runStopLightTask2(void)
setS1ToGreen(); setS1ToGreen();
setS2ToRed(); setS2ToRed();
StoplightState = WAIT;
break;
case WAIT:
if(Taster1_get()) { if(Taster1_get()) {
g_startMS=Timer_getTick(); g_startMS=Timer_getTick();
StoplightState = S1_YELLOW; StoplightState = S1_YELLOW;
@ -186,9 +190,9 @@ runStopLightTask2(void)
setS1ToGreen(); setS1ToGreen();
// Wait 30 seconds before allowing the button to be pressed again // 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(); g_startMS=Timer_getTick();
StoplightState = S1_YELLOW; StoplightState = WAIT;
} }
break; break;
} }