/* * A DMX receiver that filters out one channel and * sends it out via soft uart * used to display HD images on a Raspberry PI * * ATmega48A @ 8 MHz * */ #include #include #include #include "main.h" volatile uint16_t soft_tx; // data for soft UART volatile uint8_t soft_tx_active; // just for info, maybe needed later? // main int main(void) { // IO init DDRB = (1<> 8; UBRR0L = UBRR_VAL & 0xFF; // timer 1 init // OCRA1 for soft UART tx // mode 0, prescaler 1 TCCR1A = 0; TCCR1B = (1< DMX Reset //TEST_HIGH; i = -1; READ_DMX_ADR; //SEND_SOFT_UART(dmx_adr); } } else { // normal reception //TEST_LOW; i++; if (i == dmx_adr && !soft_tx_active) { // send data via soft UART SEND_SOFT_UART(data); TEST_HIGH; } else TEST_LOW; } } // Timer 1 Output COMPARE A Interrupt // driver for hybrid UART TX ISR(TIMER1_COMPA_vect) { uint16_t tmp = soft_tx; if (tmp == 0) { TIMSK1 &= ~(1<> 1; } }