summaryrefslogtreecommitdiff
path: root/avr/serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'avr/serial.c')
-rw-r--r--avr/serial.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/avr/serial.c b/avr/serial.c
index adbc3c4..d3aeb4e 100644
--- a/avr/serial.c
+++ b/avr/serial.c
@@ -45,15 +45,14 @@ void usart0_setup(unsigned long baud) {
PRR0 &= ~_BV(PRUSART0);
UCSR0B = 0;
+ UCSR0A = 0;
+ UBRR0 = (F_CPU + (baud/2) + 8) / baud / 16 - 1;
+ UCSR0B = _BV(RXCIE0) | _BV(RXEN0) | _BV(TXEN0);
+ UCSR0C = 3 << UCSZ00;
/* Initialize ring buffers. */
ring_init(&rx_ring, rx_ring_buffer, BUFFER_SIZE);
ring_init(&tx_ring, tx_ring_buffer, BUFFER_SIZE);
-
- UCSR0A = 0;
- UBRR0 = F_CPU / baud / 16 - 1;
- UCSR0B = _BV(RXCIE0) | _BV(RXEN0) | _BV(TXEN0);
- UCSR0C = 3 << UCSZ00;
};
}