From 31f85163b5981a78a2b6704168d0ae12929b53be Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 31 May 2011 09:39:16 +0200 Subject: digital/mimot: better find zero/limit --- digital/mimot/src/dirty/aux.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'digital/mimot/src/dirty/aux.c') diff --git a/digital/mimot/src/dirty/aux.c b/digital/mimot/src/dirty/aux.c index e00e2c08..e36489ba 100644 --- a/digital/mimot/src/dirty/aux.c +++ b/digital/mimot/src/dirty/aux.c @@ -184,7 +184,7 @@ aux_traj_find_zero (struct aux_t *aux) { aux->speed->cons = 0; state_finish (aux->state); - aux->pos = 0; + aux->pos = aux->reset_pos; aux->traj_mode = AUX_TRAJ_DONE; } break; @@ -193,12 +193,14 @@ aux_traj_find_zero (struct aux_t *aux) /** Start find zero mode. */ void -aux_traj_find_zero_start (struct aux_t *aux, int8_t speed, uint8_t seq) +aux_traj_find_zero_start (struct aux_t *aux, int8_t speed, int16_t reset_pos, + uint8_t seq) { aux->traj_mode = AUX_TRAJ_FIND_ZERO_NOT; aux->speed->use_pos = 0; aux->speed->cons = speed << 8; state_start (aux->state, MODE_TRAJ, seq); + aux->reset_pos = reset_pos; } /** Find limit mode. */ @@ -225,7 +227,7 @@ aux_traj_find_limit (struct aux_t *aux) if (!--aux->wait) { state_finish (aux->state); - aux->pos = 0; + aux->pos = aux->reset_pos; aux->traj_mode = AUX_TRAJ_DONE; } break; @@ -234,13 +236,15 @@ aux_traj_find_limit (struct aux_t *aux) /** Start find limit mode. */ void -aux_traj_find_limit_start (struct aux_t *aux, int8_t speed, uint8_t seq) +aux_traj_find_limit_start (struct aux_t *aux, int8_t speed, int16_t reset_pos, + uint8_t seq) { aux->traj_mode = AUX_TRAJ_FIND_LIMIT; aux->speed->use_pos = 0; aux->speed->cons = speed << 8; state_start (aux->state, MODE_TRAJ, seq); aux->state->variant = 4; + aux->reset_pos = reset_pos; } /** Update trajectories for one motor. */ -- cgit v1.2.3