Use buffer handling code.
[dmxpainter.git] / src / main.c
1 // http://www.nongnu.org/avr-libc/user-manual/modules.html\r
2 \r
3 #include "mcu.h"\r
4 \r
5 #include "sched.h"\r
6 #include "dmx.h"\r
7 #include "tlc.h"\r
8 #include "sd.h"\r
9 \r
10 #include "buffer.h"\r
11 \r
12 \r
13 // http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html\r
14 #if __GNUC__ < 4\r
15 #error GCC 4.x.x required!\r
16 #endif\r
17 \r
18 //////////////////////////////////////////\r
19 // Interrupts\r
20 \r
21 // INT0:  External int, DMX sync\r
22 mcu_isr(INT0);\r
23 \r
24 // TIMER0:  8-Bit: 4 us for DMX, timeouts\r
25 mcu_isr(TIMER0_OVF);\r
26 \r
27 // TIMER1: 16-Bit: GSCLK\r
28 mcu_isr(TIMER1_COMPA);\r
29 // TIMER2:  8-Bit: GS-Refresh-Timer\r
30 mcu_isr(TIMER2_COMP);\r
31 \r
32 \r
33 //////////////////////////////////////////\r
34 \r
35 int main(void)\r
36 {\r
37   cli();\r
38 \r
39   // Initialize scheduler.\r
40   sched_init();\r
41 \r
42   // Initialize buffer.\r
43   buffer_init();\r
44 \r
45   // Initialize peripherals.\r
46   //dmx_init();\r
47   tlc_init();\r
48 \r
49   sei();\r
50   // Start DMX\r
51   //dmx_start();\r
52   // not done yet, use dummy data\r
53   buffer_next();\r
54 \r
55   // Start scheduler.\r
56   sched_loop();\r
57   return 0;\r
58 }\r