summaryrefslogtreecommitdiff
path: root/digital/avr/modules/uart/uart.avr.c
diff options
context:
space:
mode:
authorNicolas Schodet2011-05-08 16:15:06 +0200
committerNicolas Schodet2011-05-08 16:15:06 +0200
commit0feb542a8cf7630a5d442387727414f5251aad83 (patch)
tree02092fbede27ef619ee63466f671513a889fb2ea /digital/avr/modules/uart/uart.avr.c
parent4cd9c4458eaa49c269171145f4bc2a184948eae1 (diff)
parentd385a9eacb2e8580239f101f96356f7ed216dd97 (diff)
Merge branch 'master' into efrei-robotique
Conflicts: digital/mimot/src/dirty/counter_ext.avr.c digital/mimot/tools/mimot/init.py
Diffstat (limited to 'digital/avr/modules/uart/uart.avr.c')
-rw-r--r--digital/avr/modules/uart/uart.avr.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/digital/avr/modules/uart/uart.avr.c b/digital/avr/modules/uart/uart.avr.c
index e3ffb18c..689866ae 100644
--- a/digital/avr/modules/uart/uart.avr.c
+++ b/digital/avr/modules/uart/uart.avr.c
@@ -39,6 +39,10 @@
#elif defined (__AVR_ATmega64__)
#elif defined (__AVR_ATmega128__)
#elif defined (__AVR_AT90USB162__)
+#elif defined (__AVR_AT90USB646__)
+#elif defined (__AVR_AT90USB647__)
+#elif defined (__AVR_AT90USB1286__)
+#elif defined (__AVR_AT90USB1287__)
#else
# warning "uart: not tested on this chip"
#endif
@@ -149,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