From be5cfb4b00c91be32cb736369a452faef8c24760 Mon Sep 17 00:00:00 2001 From: Leo C Date: Tue, 2 Dec 2014 11:45:40 +0100 Subject: System time: Init from rtc on startup, update in timer inerrupt. --- avr/timer.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'avr/timer.c') diff --git a/avr/timer.c b/avr/timer.c index 7907bba..e222e68 100644 --- a/avr/timer.c +++ b/avr/timer.c @@ -4,6 +4,7 @@ #include "common.h" #include #include +#include "time.h" #include "timer.h" /* timer interrupt/overflow counter */ @@ -18,7 +19,8 @@ uint32_t timestamp; ISR(TIMER3_COMPA_vect) { static int_fast8_t tick_10ms; - int_fast8_t i; + static int_fast8_t tick_1s; + int_fast8_t i, j; extern void disk_timerproc(void); @@ -26,11 +28,18 @@ ISR(TIMER3_COMPA_vect) i = tick_10ms + 1; if (i == 10) { - i = 0; Stat |= S_10MS_TO; /* Drive timer procedure of low level disk I/O module */ disk_timerproc(); + + j = tick_1s - 1; + if (j == 0) { + system_tick(); + j = 100; + } + tick_1s = j; + i = 0; } tick_10ms = i; } -- cgit v1.2.3