X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=cpu%2Favr%2Fdrv%2Fser_avr.c;fp=cpu%2Favr%2Fdrv%2Fser_avr.c;h=d690a65f4566424913bc6abd8545062d2b48b3b3;hb=3110ae0831fa4ba081c9206663390e21c7a4f78a;hp=495c52bafad0a1ed73bdcd9f1209d5122a49a0cf;hpb=d9f99c9f43f39c988c2df5bab952818105f5cb58;p=bertos.git diff --git a/cpu/avr/drv/ser_avr.c b/cpu/avr/drv/ser_avr.c index 495c52ba..d690a65f 100644 --- a/cpu/avr/drv/ser_avr.c +++ b/cpu/avr/drv/ser_avr.c @@ -168,6 +168,7 @@ #include /* CLOCK_FREQ */ #include +#include /* DIV_ROUND */ #include #include #include @@ -509,7 +510,7 @@ static void uart0_enabletxirq(struct SerialHardware *_hw) static void uart0_setbaudrate(UNUSED_ARG(struct SerialHardware *, _hw), unsigned long rate) { /* Compute baud-rate period */ - uint16_t period = (((CLOCK_FREQ / 16UL) + (rate / 2)) / rate) - 1; + uint16_t period = DIV_ROUND(CLOCK_FREQ / 16UL, rate) - 1; #if !CPU_AVR_ATMEGA103 UBRR0H = (period) >> 8; @@ -562,7 +563,7 @@ static void uart1_enabletxirq(struct SerialHardware *_hw) static void uart1_setbaudrate(UNUSED_ARG(struct SerialHardware *, _hw), unsigned long rate) { /* Compute baud-rate period */ - uint16_t period = (((CLOCK_FREQ / 16UL) + (rate / 2)) / rate) - 1; + uint16_t period = DIV_ROUND(CLOCK_FREQ / 16UL, rate) - 1; UBRR1H = (period) >> 8; UBRR1L = (period);