From be90944b2fc61c55ba1fed28d0fbfdd79293e1b4 Mon Sep 17 00:00:00 2001 From: Eggert Jung Date: Sat, 21 Sep 2019 18:37:37 +0200 Subject: [PATCH] adapt uart to new atmega --- code/inc/uart.h | 23 +++++++++++++++++++++++ code/src/main.c | 1 + code/src/uart.c | 22 ++++++++++++++-------- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/code/inc/uart.h b/code/inc/uart.h index 19129cb..2bfaa36 100644 --- a/code/inc/uart.h +++ b/code/inc/uart.h @@ -6,6 +6,29 @@ #define BAUD 9600 #define BAUDRATE ((F_CPU)/(BAUD*16UL)-1) +#define UART_BAUD_REGH UBRR0H +#define UART_BAUD_REGL UBRR0L + +#define UART_CTRL_REGA UCSR0A +#define UART_CTRL_REGB UCSR0B +#define UART_CTRL_REGC UCSR0C + +// UCSRA +#define UART_UDRE_BM UDRE0 +#define UART_RXC_BM RXC0 + +// UCSRB +#define UART_TXEN_BM TXEN0 +#define UART_RXEN_BM RXEN0 +#define UART_RXCIE_BM RXCIE0 + +// UCSRC +#define UART_URSEL_BM 0 /* only for old atmega */ +#define UART_UCSZ0_BM UCSZ00 +#define UART_UCSZ1_BM UCSZ01 + +#define UART_DATA_REG UDR0 + void uart_init (void); void read_sync(char buffer[], uint8_t buffersize, uint8_t * bufferindex); diff --git a/code/src/main.c b/code/src/main.c index 966f191..ac752df 100644 --- a/code/src/main.c +++ b/code/src/main.c @@ -197,6 +197,7 @@ void setup(){ TIMSK1 |= (1 << ICIE1) | //Interrupt Counter Enabled) (1 << TOIE1); //Timer Overflow Enabled + uart_init(); sei(); //Enable Interrupts //adc_setup(); diff --git a/code/src/uart.c b/code/src/uart.c index f62699e..1d3abf2 100644 --- a/code/src/uart.c +++ b/code/src/uart.c @@ -7,10 +7,16 @@ FILE uart_output = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE); void uart_init () { - UBRRH = (BAUDRATE>>8); // shift the register right by 8 bits - UBRRL = BAUDRATE; // set baud rate - UCSRB|= (1<>8); + UART_BAUD_REGL = BAUDRATE; // set baud rate + + UART_CTRL_REGB |= (1<