From f3e2181e6e41225255e7fd654cd4989eac9e19e3 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sat, 1 May 2010 01:11:09 +0200 Subject: digital/io/src: handle several TWI command for several slaves, closes #122 --- digital/io/src/chrono.c | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) (limited to 'digital/io/src/chrono.c') diff --git a/digital/io/src/chrono.c b/digital/io/src/chrono.c index 631c7096..b73b627c 100644 --- a/digital/io/src/chrono.c +++ b/digital/io/src/chrono.c @@ -28,6 +28,7 @@ #include "bot.h" #include "main_timer.h" #include "asserv.h" +#include "twi_master.h" #include "modules/utils/utils.h" #include "modules/host/mex.h" @@ -56,7 +57,7 @@ #define CHRONO_LOOP_DURATION_MS 4 /** - * Time to wait before resetting asserv board, in ms. + * Time to wait before resetting slaves board, in ms. */ #define CHRONO_WAIT_BEFORE_RESET_MS 1000 @@ -128,36 +129,15 @@ chrono_end_match (uint8_t block) { /* Make sure previous command has been acknowledged. If not, retransmit * until acknowledged */ - while (asserv_last_cmd_ack () == 0) - { - /* Update status */ - asserv_update_status (); - /* Manage retransmission */ - asserv_retransmit (); - /* Wait a little */ + while (!twi_master_sync ()) utils_delay_ms (CHRONO_LOOP_DURATION_MS); - } /* Make the bot stop moving */ asserv_stop_motor (); /* Wait until complete */ - while (42) - { - /* Update the asserv board */ - asserv_update_status (); - /* Stop acknowledged ? */ - if (asserv_last_cmd_ack () == 0) - { - /* Retransmit if needed */ - asserv_retransmit (); - /* Wait a little */ - utils_delay_ms (CHRONO_LOOP_DURATION_MS); - } - else - /* Exit loop */ - break; - } + while (!twi_master_sync ()) + utils_delay_ms (CHRONO_LOOP_DURATION_MS); /* Wait CHRONO_WAIT_BEFORE_RESET ms before reseting */ utils_delay_ms (CHRONO_WAIT_BEFORE_RESET_MS); -- cgit v1.2.3