From d32d259cbd5fcb8994d9f555a74a3fc2640d8ebe Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Thu, 5 May 2011 23:09:45 +0200 Subject: digital/avr/modules/uart: add baudrate error percent check --- digital/avr/modules/uart/uart.avr.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'digital') diff --git a/digital/avr/modules/uart/uart.avr.c b/digital/avr/modules/uart/uart.avr.c index 359f9002..689866ae 100644 --- a/digital/avr/modules/uart/uart.avr.c +++ b/digital/avr/modules/uart/uart.avr.c @@ -153,12 +153,18 @@ /* Baud rate error check. */ #define UBRR_VAL (AC_FREQ / 16 / AC_UART (BAUDRATE) - 1) #define BAUDRATE_VAL (AC_FREQ / 16 / (UBRR_VAL + 1)) +#define BAUDRATE_ERROR (BAUDRATE_VAL - AC_UART (BAUDRATE)) +#define BAUDRATE_ERROR_PCT (BAUDRATE_ERROR * 100 / AC_UART (BAUDRATE)) -#if BAUDRATE_VAL - AC_UART (BAUDRATE) > 2 +#if BAUDRATE_ERROR_PCT >= 2 +#warning "uart: baud rate error > 2 %" +#elif BAUDRATE_ERROR_PCT >= 1 +#warning "uart: baud rate error > 1 %" +#elif BAUDRATE_ERROR > 2 #warning "uart: baud rate error > 2" -#elif BAUDRATE_VAL - AC_UART (BAUDRATE) > 1 +#elif BAUDRATE_ERROR > 1 #warning "uart: baud rate error > 1" -#elif BAUDRATE_VAL - AC_UART (BAUDRATE) > 0 +#elif BAUDRATE_ERROR > 0 #warning "uart: baud rate error > 0" #endif -- cgit v1.2.3