]>
cloudbase.mooo.com Git - z180-stamp.git/blob - avr/timer.c
2 * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de>
4 * SPDX-License-Identifier: GPL-2.0
8 #include <avr/interrupt.h>
9 #include <util/atomic.h>
12 /* timer interrupt/overflow counter */
13 /* counts up every ms. */
18 * 1000Hz timer interrupt generated by OC4A
20 ISR(TIMER4_COMPA_vect
)
22 static int_fast8_t tick_10ms
;
23 static int_fast8_t tick_1s
;
26 extern void disk_timerproc(void);
28 OCR4A
+= F_CPU
/ 1000; /* 1000Hz interval */
36 /* Drive timer procedure of low level disk I/O module */
50 /*--------------------------------------------------------------------------*/
52 void setup_timer(void)
55 OCR4A
= F_CPU
/ 1000 - 1; /* Timer4: 1000Hz interval */
56 TCCR4B
= (0b00<<WGM42
)|(0b001<<CS40
); /* Normal Mode, Prescaler 1 */
57 TIMSK4
= _BV(OCIE4A
); /* Enable Output Compare A interrupt */
60 /*--------------------------------------------------------------------------*/
62 uint32_t get_timer(uint32_t base
)
65 ATOMIC_BLOCK(ATOMIC_FORCEON
)