More debugging stuff.
[dmxpainter.git] / src / mcu.h
1 #pragma once
2
3 #include <inttypes.h>
4
5 #include <avr/io.h>
6 #include <avr/interrupt.h>
7
8 #include "pins.h"
9
10 #include "mcu_config.h"\r
11 \r
12 #define nop() asm volatile ("nop")
13
14 #define mcu_isr(name) ISR(name ## _vect) { INT_ ## name (); } int main(void)
15
16 #ifdef __AVR_ATmega8__
17 #include "mcu_atmega8.h"
18 #include "mcu_atmega8_pins.h"
19 #else
20 #error Unknown MCU
21 #endif
22 \r
23 \r
24 \r
25 #define mcu_init() pin_out(PIN_DEBUG)\r
26 volatile uint8_t gg_mcu_debug;\r
27 #define mcu_debug_apply() do { if (gg_mcu_debug) { pin_on(PIN_DEBUG); } else { pin_off(PIN_DEBUG); } } while (0)\r
28 #define mcu_debug()       do { gg_mcu_debug = ~gg_mcu_debug; mcu_debug_apply(); } while (0)\r
29 #define mcu_debug_on()    do { gg_mcu_debug =             1; mcu_debug_apply(); } while (0)\r
30 #define mcu_debug_off()   do { gg_mcu_debug =             0; mcu_debug_apply(); } while (0)\r