summaryrefslogtreecommitdiff
path: root/digital/io/src/asserv.c
diff options
context:
space:
mode:
authorJérémy Dufour2008-04-25 01:16:22 +0200
committerJérémy Dufour2008-04-25 01:16:22 +0200
commit9343677bdbce9946a9eca92460d9d45a4ce5463d (patch)
tree8ec6d474ffd464ee9a18a3c8fa42020a2ba9bf65 /digital/io/src/asserv.c
parent751a584894e589649a9c748cf334f49350edc974 (diff)
* digital/io/src
- correct a bug in the updating of the position received by the asserv board (thanks to ni).
Diffstat (limited to 'digital/io/src/asserv.c')
-rw-r--r--digital/io/src/asserv.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/digital/io/src/asserv.c b/digital/io/src/asserv.c
index 799cd5f8..b6910275 100644
--- a/digital/io/src/asserv.c
+++ b/digital/io/src/asserv.c
@@ -222,10 +222,10 @@ asserv_update_status (void)
/* Parse received data and store them */
asserv_status.status = status_buffer[0];
asserv_status.seq = status_buffer[1];
- asserv_status.position.x = v8_to_v32 (status_buffer[2], status_buffer[3],
- status_buffer[4], 0);
- asserv_status.position.y = v8_to_v32 (status_buffer[5], status_buffer[6],
- status_buffer[7], 0);
+ asserv_status.position.x = ((int32_t) v8_to_v32 (status_buffer[2], status_buffer[3],
+ status_buffer[4], 0)) >> 8;
+ asserv_status.position.y = ((int32_t) v8_to_v32 (status_buffer[5], status_buffer[6],
+ status_buffer[7], 0)) >> 8;
asserv_status.position.a = v8_to_v16 (status_buffer[8], status_buffer[9]);
asserv_status.arm_position = v8_to_v16 (status_buffer[10], status_buffer[11]);
}