From 1c5d5350411f25fde6168c301b68fe7fe125cf0e Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 13 Apr 2010 00:21:38 +0200 Subject: digital/io/src: add new position_t type --- digital/io/src/asserv.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'digital/io/src/asserv.c') diff --git a/digital/io/src/asserv.c b/digital/io/src/asserv.c index 0ae1465f..87c3baa4 100644 --- a/digital/io/src/asserv.c +++ b/digital/io/src/asserv.c @@ -93,6 +93,19 @@ static uint8_t asserv_twi_buffer[15]; */ static uint8_t *asserv_twi_buffer_param = &asserv_twi_buffer[3]; +/** + * Structure for storing a position for the bot using asserv units. + */ +typedef struct asserv_position_t +{ + /** X position. */ + uint32_t x; + /** Y position. */ + uint32_t y; + /** Angle. */ + uint16_t a; +} asserv_position_t; + /** * Status structure maintains by the update command. */ @@ -359,15 +372,15 @@ asserv_motor1_cmd_status (void) /* Get the current position of the bot. */ void -asserv_get_position (asserv_position_t *current_position) +asserv_get_position (position_t *current_position) { if (current_position) { /* Copy last received status buffer information to current position */ - current_position->x = fixed_mul_f824 (asserv_status.position.x, - asserv_scale); - current_position->y = fixed_mul_f824 (asserv_status.position.y, - asserv_scale); + current_position->v.x = fixed_mul_f824 (asserv_status.position.x, + asserv_scale); + current_position->v.y = fixed_mul_f824 (asserv_status.position.y, + asserv_scale); current_position->a = asserv_status.position.a; } } -- cgit v1.2.3