void blinkingLED(int delayMs) { int delay; while(getCurrentTime() < delayMs/2) { turnOnLED3(); for(delay = 0; delay < 500000; delay++); turnOffLED3(); for(delay = 0; delay < 500000; delay++); } }
void runningLight(State *state, int time){ static int previousTime = 0 ; switch(*state){ case INITIAL: turnOffLED1(); turnOffLED2(); turnOffLED3(); turnOffLED4(); *state = LED1_ON; break; case LED1_ON: if( waitWithoutDelay( previousTime,time) ){ previousTime = getCurrentTime(); turnOnLED1(); turnOffLED4(); *state = LED2_ON; } break; case LED2_ON: if( waitWithoutDelay( previousTime,time) ){ previousTime = getCurrentTime(); turnOnLED2(); turnOffLED1(); *state = LED3_ON; } break; case LED3_ON: if( waitWithoutDelay( previousTime,time) ){ previousTime = getCurrentTime(); turnOnLED3(); turnOffLED2(); *state = LED4_ON; } break; case LED4_ON: if( waitWithoutDelay( previousTime,time) ){ previousTime = getCurrentTime(); turnOnLED4(); turnOffLED3(); *state = LED1_ON; } break; default : break; } }
void SD3(){ static State state = INITIAL; static uint32_t previousTime = 0; static int counter = 0; switch(state){ case INITIAL: counter = 0; turnOffLED3(); turnOffLED4(); if(pushButton() == 1){ state = LEDON; previousTime = currentTime; } break; case LEDON: turnOnLED3(); turnOnLED4(); if(delay(100, previousTime)){ state = LEDOFF; previousTime = currentTime; counter++; } break; case LEDOFF: turnOffLED3(); turnOffLED4(); if(delay(100, previousTime)){ state = LEDON; previousTime = currentTime; } if(counter > 5) state = INITIAL; break; } }
void blinkLED3(State *state, int *counter) { switch (*state) { case START: turnOffLED3(); *state = ON_LED3; break; case ON_LED3: if(oneHundredMiliSecHasNotExpired()) { turnOnLED3(); *state = OFF_LED3; } break; case OFF_LED3: if(oneHundredMiliSecHasNotExpired()) { turnOffLED3(); *state = COUNTER; } break; case COUNTER: *counter -= 1; if(*counter == 0) { *state = HALT; break; } else *state = ON_LED3; break; default: break; } }