]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/serial.c
env var fmon (F_CPU)
[z180-stamp.git] / avr / serial.c
index adbc3c430e91f0aaa01ce7bf18b433ff298976a1..d3aeb4ea90511d97f4530e98dcd5203cd1a77a78 100644 (file)
@@ -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;
        };
 }