/* * uart.c * * Created: 20.02.2019 20:50:13 * Author: jens */ #include #include #include #include "uart.h" #include "message.h" static Fifo *g_pFifo = NULL; ISR(USART_UDRE_vect) { } ISR(USART_TX_vect) { } ISR(USART_RX_vect) { uint8_t status = UCSR0A; if (status & (1 << RXC0)) { uint8_t rx_data = UDR0; Msg_t msg = {Uart, rx_data}; fifo_push(g_pFifo, &msg); } } void uart_init(Fifo *pFifo, uint16_t BAUD_PRESCALE) { g_pFifo = pFifo; // Set baud rate UBRR0L = (uint8_t)BAUD_PRESCALE; UBRR0H = (uint8_t)(BAUD_PRESCALE >> 8); // Enable receiver and transmitter UCSR0B = (1<