From 4b954db9a8bc6eeccf14a39178aa0fa7536b72c9 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 14 May 2012 20:54:52 +0200 Subject: digital/asserv, digital/mimot: stop outputs before reset --- digital/asserv/src/asserv/cs.c | 20 ++++++++++++++++++++ digital/asserv/src/asserv/cs.h | 3 +++ digital/asserv/src/asserv/main.c | 1 + digital/asserv/src/asserv/twi_proto.c | 1 + 4 files changed, 25 insertions(+) (limited to 'digital/asserv') diff --git a/digital/asserv/src/asserv/cs.c b/digital/asserv/src/asserv/cs.c index fe15c5d2..826c2d3c 100644 --- a/digital/asserv/src/asserv/cs.c +++ b/digital/asserv/src/asserv/cs.c @@ -93,3 +93,23 @@ cs_update (void) #endif } +void +cs_reset (void) +{ + output_set (&output_left, 0); + output_set (&output_right, 0); + output_brake (&output_left, 0); + output_brake (&output_right, 0); + control_state_set_mode (&cs_main.state, CS_MODE_NONE, 0); +#if AC_ASSERV_AUX_NB + uint8_t i; + for (i = 0; i < AC_ASSERV_AUX_NB; i++) + { + output_set (&output_aux[i], 0); + output_brake (&output_aux[i], 0); + control_state_set_mode (&cs_aux[i].state, CS_MODE_NONE, 0); + } +#endif + output_update (); +} + diff --git a/digital/asserv/src/asserv/cs.h b/digital/asserv/src/asserv/cs.h index 1887ec35..b39826c8 100644 --- a/digital/asserv/src/asserv/cs.h +++ b/digital/asserv/src/asserv/cs.h @@ -47,4 +47,7 @@ cs_update_prepare (void); void cs_update (void); +void +cs_reset (void); + #endif /* cs_h */ diff --git a/digital/asserv/src/asserv/main.c b/digital/asserv/src/asserv/main.c index e8355fbd..d7ee370f 100644 --- a/digital/asserv/src/asserv/main.c +++ b/digital/asserv/src/asserv/main.c @@ -267,6 +267,7 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args) { case c ('z', 0): /* Reset. */ + cs_reset (); utils_reset (); break; /* Commands. */ diff --git a/digital/asserv/src/asserv/twi_proto.c b/digital/asserv/src/asserv/twi_proto.c index 190c3caf..7c649e1c 100644 --- a/digital/asserv/src/asserv/twi_proto.c +++ b/digital/asserv/src/asserv/twi_proto.c @@ -127,6 +127,7 @@ twi_proto_callback (u8 *buf, u8 size) { case c ('z', 0): /* Reset. */ + cs_reset (); utils_reset (); break; case c ('w', 0): -- cgit v1.2.3