ttt2/my_src/timer.c
Wolfgang Hottgenroth c0e370c802 code beautifying
2017-06-07 22:15:54 +02:00

53 lines
850 B
C

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