Remove SD stuff for now.
[dmxpainter.git] / src / main.c
1 // http://www.nongnu.org/avr-libc/user-manual/modules.html
2
3 #include "mcu.h"
4
5 #include "dmx.h"
6 #include "tlc.h"
7
8 #include "buffer.h"
9
10
11 // http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
12 #if __GNUC__ < 4
13 #error GCC 4.x.x required!
14 #endif
15
16 //////////////////////////////////////////
17 // Interrupts
18
19 // INT0:  External int, DMX sync
20 mcu_isr(INT0);
21 // TIMER0:  8-Bit: 4 us for DMX, timeouts
22 mcu_isr(TIMER0_OVF);
23 // USART:  RXD
24 mcu_isr(USART_RXC);
25
26 // TIMER1: 16-Bit: GSCLK
27 mcu_isr(TIMER1_COMPA);
28 // TIMER2:  8-Bit: GS-Refresh-Timer
29 mcu_isr(TIMER2_COMP);
30
31
32 //////////////////////////////////////////
33
34 void main_init(void)
35 {
36   cli();
37   mcu_init();
38
39   // Initialize buffer.
40   buffer_init();
41
42   // Initialize peripherals.
43   //sd_init();
44   dmx_init();
45   tlc_init();
46
47   sei();
48 }
49
50 void main_start(void)
51 {
52   pin_on(PIN_LED_ON);
53 }
54
55 void main_loop(void)
56 {
57   while (1) {
58     tlc_set_data_done();
59     tlc_wait_for_data();
60   }
61 }
62
63 int main(void)
64 {
65   main_init();
66   main_start();
67   main_loop();
68   return 0;
69 }