From c4d20dd9ffa1c479de2858dd1b77ff014d1073dd Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 20 Apr 2008 19:17:07 +0200 Subject: * digital/asserv/src/asserv: - added separate setting of position control for theta/alpha. - disable angular position control for go to the dispenser. --- digital/asserv/src/asserv/traj.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'digital/asserv/src/asserv/traj.c') diff --git a/digital/asserv/src/asserv/traj.c b/digital/asserv/src/asserv/traj.c index dc7c439b..243df1c8 100644 --- a/digital/asserv/src/asserv/traj.c +++ b/digital/asserv/src/asserv/traj.c @@ -81,12 +81,11 @@ traj_angle_offset_start (int32_t angle, uint8_t seq) int32_t a = fixed_mul_f824 (angle, 2 * M_PI * (1L << 24)); uint32_t f = postrack_footing; int32_t arc = fixed_mul_f824 (f, a); - state_main.mode = MODE_SPEED; speed_theta.use_pos = speed_alpha.use_pos = 1; speed_theta.pos_cons = pos_theta.cons; speed_alpha.pos_cons = pos_alpha.cons; speed_alpha.pos_cons += arc; - state_start (&state_main, seq); + state_start (&state_main, MODE_SPEED, seq); } /** Go to the wall mode. */ @@ -127,9 +126,8 @@ traj_ftw (void) void traj_ftw_start (uint8_t seq) { - state_main.mode = MODE_TRAJ; traj_mode = TRAJ_FTW; - state_start (&state_main, seq); + state_start (&state_main, MODE_TRAJ, seq); } /** Go to the dispenser mode. */ @@ -160,9 +158,9 @@ traj_gtd (void) void traj_gtd_start (uint8_t seq) { - state_main.mode = MODE_TRAJ; traj_mode = TRAJ_GTD; - state_start (&state_main, seq); + state_start (&state_main, MODE_TRAJ, seq); + state_main.variant = 2; } /** Go to position mode. */ @@ -207,14 +205,13 @@ traj_goto (void) void traj_goto_start (uint32_t x, uint32_t y, uint8_t seq) { - state_main.mode = MODE_TRAJ; traj_mode = TRAJ_GOTO; traj_goto_x = x; traj_goto_y = y; speed_theta.use_pos = speed_alpha.use_pos = 1; speed_theta.pos_cons = pos_theta.cons; speed_alpha.pos_cons = pos_alpha.cons; - state_start (&state_main, seq); + state_start (&state_main, MODE_TRAJ, seq); } /** Go to angle mode. */ @@ -245,13 +242,12 @@ traj_goto_angle (void) void traj_goto_angle_start (uint32_t a, uint8_t seq) { - state_main.mode = MODE_TRAJ; traj_mode = TRAJ_GOTO_ANGLE; traj_goto_a = a; speed_theta.use_pos = speed_alpha.use_pos = 1; speed_theta.pos_cons = pos_theta.cons; speed_alpha.pos_cons = pos_alpha.cons; - state_start (&state_main, seq); + state_start (&state_main, MODE_TRAJ, seq); } /* Compute new speed according the defined trajectory. */ -- cgit v1.2.3