From cca3dc8353a2c0a9ebb66db7182601bd3d85cb3c Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 10 May 2010 23:55:10 +0200 Subject: digital/avr/modules/math/geometry: fix overflow on avr --- digital/avr/modules/math/geometry/distance.c | 4 ++-- digital/avr/modules/math/geometry/vect.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'digital/avr/modules') diff --git a/digital/avr/modules/math/geometry/distance.c b/digital/avr/modules/math/geometry/distance.c index 348087fd..f8bb7c1f 100644 --- a/digital/avr/modules/math/geometry/distance.c +++ b/digital/avr/modules/math/geometry/distance.c @@ -31,8 +31,8 @@ int16_t distance_point_point (vect_t *a, vect_t *b) { - int16_t dx = b->x - a->x; - int16_t dy = b->y - a->y; + int32_t dx = b->x - a->x; + int32_t dy = b->y - a->y; return fixed_sqrt_ui32 (dx * dx + dy * dy); } diff --git a/digital/avr/modules/math/geometry/vect.c b/digital/avr/modules/math/geometry/vect.c index 821f6844..dbc065f9 100644 --- a/digital/avr/modules/math/geometry/vect.c +++ b/digital/avr/modules/math/geometry/vect.c @@ -70,7 +70,7 @@ vect_value_t vect_norm (const vect_t *v) { assert (v); - int16_t tx = v->x, ty = v->y; + int32_t tx = v->x, ty = v->y; return fixed_sqrt_ui32 (tx * tx + ty * ty); } -- cgit v1.2.3