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/mimot/src/dirty/cs.c | 13 +++++++++++++ digital/mimot/src/dirty/cs.h | 3 +++ digital/mimot/src/dirty/main.c | 1 + digital/mimot/src/dirty/twi_proto.c | 1 + 4 files changed, 18 insertions(+) (limited to 'digital/mimot/src') diff --git a/digital/mimot/src/dirty/cs.c b/digital/mimot/src/dirty/cs.c index 73c2cbd1..fad1bc98 100644 --- a/digital/mimot/src/dirty/cs.c +++ b/digital/mimot/src/dirty/cs.c @@ -67,3 +67,16 @@ cs_update (void) control_system_single_update (&cs_aux[i]); } +void +cs_reset (void) +{ + 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); + } + output_update (); +} + diff --git a/digital/mimot/src/dirty/cs.h b/digital/mimot/src/dirty/cs.h index ab3c3a62..c754e380 100644 --- a/digital/mimot/src/dirty/cs.h +++ b/digital/mimot/src/dirty/cs.h @@ -40,4 +40,7 @@ cs_update_prepare (void); void cs_update (void); +void +cs_reset (void); + #endif /* cs_h */ diff --git a/digital/mimot/src/dirty/main.c b/digital/mimot/src/dirty/main.c index f6b7fd6a..187f013a 100644 --- a/digital/mimot/src/dirty/main.c +++ b/digital/mimot/src/dirty/main.c @@ -206,6 +206,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/mimot/src/dirty/twi_proto.c b/digital/mimot/src/dirty/twi_proto.c index 3ac4b8a4..66cdb5aa 100644 --- a/digital/mimot/src/dirty/twi_proto.c +++ b/digital/mimot/src/dirty/twi_proto.c @@ -108,6 +108,7 @@ twi_proto_callback (u8 *buf, u8 size) { case c ('z', 0): /* Reset. */ + cs_reset (); utils_reset (); break; case c ('b', 4): -- cgit v1.2.3