Import buzzerled driver.
[bertos.git] / drv / timer_i196.h
1 /*!
2  * \file
3  * <!--
4  * Copyright (C) 2000 Bernardo Innocenti
5  * Copyright (C) 2003,2004 Develer S.r.l. (http://www.develer.com/)
6  * All Rights Reserved.
7  * -->
8  *
9  * \version $Id$
10  *
11  * \author Bernardo Innocenti <bernie@develer.com>
12  *
13  * \brief Low-level timer module for AVR
14  */
15
16 /*
17  * $Log$
18  * Revision 1.1  2004/05/23 18:23:30  bernie
19  * Import drv/timer module.
20  *
21  */
22
23 #ifndef TIMER_I196_H
24 #define TIMER_I196_H
25
26         /*!
27          * Retrigger TIMER2, adjusting the time to account for
28          * the interrupt prologue latency.
29          */
30 #       define TIMER_RETRIGGER (TIMER2 -= TICKS_RATE)
31
32 #       define TIMER_INIT \
33                 TIMER2 = (65535 - TICKS_RATE); \
34                 INT_MASK1 |= INT1F_T2OVF; \
35                 \
36                 DISABLE_INTS; \
37                 WSR = 1; \
38                 IOC3 |= IOC3F_T2_ENA; \
39                 WSR = 0; \
40                 ENABLE_INTS
41
42 #define DEFINE_TIMER_ISR \
43         INTERRUPT(0x38) void TM2_OVFL_interrupt(void);  \
44         INTERRUPT(0x38) void TM2_OVFL_interrupt(void)
45
46 #endif /* DRV_TIMER_I196_H */