/* * timer.c * * Created on: May 31, 2017 * Author: wn */ #include "timer.h" #include "display.h" extern tDisplay display; void startTimer() { display.timerState = STARTED; } void secondTick(void *handle) { tDisplay *lDisplay = (tDisplay*) handle; switch (lDisplay->timerState) { case STARTED: lDisplay->currentTime = lDisplay->targetTime; lDisplay->timerState = RUNNING; break; case RUNNING: lDisplay->currentTime -= 1; if (lDisplay->currentTime == 0) { lDisplay->timerState = OVERRUN; } break; case OVERRUN: lDisplay->overrunTime += 1; break; default: ; } }