diff options
author | Leo C | 2015-06-11 17:43:28 +0200 |
---|---|---|
committer | Leo C | 2015-06-11 17:43:28 +0200 |
commit | 1157e75889d3d6d23d1e2514f401cd5b354bd149 (patch) | |
tree | edad2bcaddaec49a18a1b4bac2b813ce9e5a36bf /avr/timer.c | |
parent | 8506d791786eea8ee55db5418a8f646bb2dd3a6d (diff) | |
parent | 057817cb1dc71416bc798b5cd592acfcea87efaa (diff) | |
download | z180-stamp-1157e75889d3d6d23d1e2514f401cd5b354bd149.zip |
Merge branch 'master' into cmdline_edit
Diffstat (limited to 'avr/timer.c')
-rw-r--r-- | avr/timer.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/avr/timer.c b/avr/timer.c index 7907bba..f45f267 100644 --- a/avr/timer.c +++ b/avr/timer.c @@ -1,9 +1,13 @@ /* + * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de> + * + * SPDX-License-Identifier: GPL-2.0+ */ #include "common.h" #include <avr/interrupt.h> #include <util/atomic.h> +#include "time.h" #include "timer.h" /* timer interrupt/overflow counter */ @@ -11,14 +15,14 @@ static volatile uint32_t timestamp; -/*---------------------------------------------------------*/ -/* 1000Hz timer interrupt generated by OC3A */ -/*---------------------------------------------------------*/ - +/* + * 1000Hz timer interrupt generated by OC3A + */ 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 +30,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; } |