summaryrefslogtreecommitdiff
path: root/digital/avr/modules
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
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')
-rw-r--r--digital/avr/modules/math/geometry/distance.c4
-rw-r--r--digital/avr/modules/math/geometry/distance.h4
-rw-r--r--digital/avr/modules/twi/twi_hard.avr.c6
-rw-r--r--digital/avr/modules/uart/uart.avr.c16
-rw-r--r--digital/avr/modules/utils/utils.avr.h1
5 files changed, 23 insertions, 8 deletions
diff --git a/digital/avr/modules/math/geometry/distance.c b/digital/avr/modules/math/geometry/distance.c
index f8bb7c1f..38a5350c 100644
--- a/digital/avr/modules/math/geometry/distance.c
+++ b/digital/avr/modules/math/geometry/distance.c
@@ -29,7 +29,7 @@
#include "modules/math/fixed/fixed.h"
int16_t
-distance_point_point (vect_t *a, vect_t *b)
+distance_point_point (const vect_t *a, const vect_t *b)
{
int32_t dx = b->x - a->x;
int32_t dy = b->y - a->y;
@@ -37,7 +37,7 @@ distance_point_point (vect_t *a, vect_t *b)
}
int16_t
-distance_segment_point (vect_t *a, vect_t *b, vect_t *p)
+distance_segment_point (const vect_t *a, const vect_t *b, const vect_t *p)
{
int16_t proj;
/* The space is split in three regions delimited by the two parallel lines
diff --git a/digital/avr/modules/math/geometry/distance.h b/digital/avr/modules/math/geometry/distance.h
index c48c2226..049b84ce 100644
--- a/digital/avr/modules/math/geometry/distance.h
+++ b/digital/avr/modules/math/geometry/distance.h
@@ -29,13 +29,13 @@
/** Compute distance between two points.
* - a, b: points. */
int16_t
-distance_point_point (vect_t *a, vect_t *b);
+distance_point_point (const vect_t *a, const vect_t *b);
/** Compute distance between a segment and a point.
* - a: segment first vertice.
* - b: segment second vertice.
* - p: point. */
int16_t
-distance_segment_point (vect_t *a, vect_t *b, vect_t *p);
+distance_segment_point (const vect_t *a, const vect_t *b, const vect_t *p);
#endif /* distance_h */
diff --git a/digital/avr/modules/twi/twi_hard.avr.c b/digital/avr/modules/twi/twi_hard.avr.c
index ff65d31e..8bd18d34 100644
--- a/digital/avr/modules/twi/twi_hard.avr.c
+++ b/digital/avr/modules/twi/twi_hard.avr.c
@@ -56,6 +56,10 @@
# if defined (__AVR_ATmega32__)
# elif defined (__AVR_ATmega64__)
# elif defined (__AVR_ATmega128__)
+# elif defined (__AVR_AT90USB646__)
+# elif defined (__AVR_AT90USB647__)
+# elif defined (__AVR_AT90USB1286__)
+# elif defined (__AVR_AT90USB1287__)
# else
# error "twi: not tested on this chip"
# endif
@@ -201,7 +205,7 @@ twi_master_wait (void)
# endif /* AC_TWI_MASTER_ENABLE */
-SIGNAL (SIG_2WIRE_SERIAL)
+SIGNAL (TWI_vect)
{
# if AC_TWI_SLAVE_ENABLE
/** Slave work buffer. */
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
diff --git a/digital/avr/modules/utils/utils.avr.h b/digital/avr/modules/utils/utils.avr.h
index efe9eaa1..aa7421d2 100644
--- a/digital/avr/modules/utils/utils.avr.h
+++ b/digital/avr/modules/utils/utils.avr.h
@@ -25,6 +25,7 @@
*
* }}} */
+#include "io.h"
#include <avr/wdt.h>
/** Helper macro to build register value. Call it like this::