ttt2/my_src/timer.c

49 lines
791 B
C
Raw Normal View History

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