From: Xavier L. <Ba...@us...> - 2011-04-02 12:36:21
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via f3ba0f4c3e5b991400c322baeaec5decc5eb787f (commit) from cb5df192b9fad7e421db94ddf32b6643e2cda29a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f3ba0f4c3e5b991400c322baeaec5decc5eb787f Author: Xavier Lagorce <Xav...@cr...> Date: Sat Apr 2 14:35:50 2011 +0200 [Controller_Motor_STM32] Corrections ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/main.c b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/main.c index 347a7c3..357f7b8 100644 --- a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/main.c +++ b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/main.c @@ -56,13 +56,15 @@ static void init(void) params.l0[1] = 3.9715; params.T = 0.005; // Initialize left motor + params.motor = MOTOR3; params.encoder = ENCODER3; tc_new_controller(2); - mc_new_controller(¶ms, tc_get_position_generator(0)); + mc_new_controller(¶ms, tc_get_position_generator(2)); // Initialize right motor + params.motor = MOTOR4; params.encoder = ENCODER4; tc_new_controller(3); - mc_new_controller(¶ms, tc_get_position_generator(1)); + mc_new_controller(¶ms, tc_get_position_generator(3)); // Start odometry odometryInit(1e-3, 0.049245, 0.259, -2.0*M_PI/2000.0/15.0); @@ -79,7 +81,7 @@ static void init(void) LED3_OFF(); LED4_OFF(); timer_delay(100); - } + } } static void NORETURN ind_process(void) diff --git a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/motor_controller.c b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/motor_controller.c index 93d092b..537c174 100644 --- a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/motor_controller.c +++ b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/motor_controller.c @@ -35,7 +35,7 @@ typedef struct ticks_t T; // sampling period in systicks } control_params_t; -control_params_t controllers[4]; +static control_params_t controllers[4]; static inline uint8_t get_motor_index(uint8_t motor_id) { uint8_t motor_ind; diff --git a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/trajectory_controller.c b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/trajectory_controller.c index 605913d..5bd2734 100644 --- a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/trajectory_controller.c +++ b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/trajectory_controller.c @@ -36,7 +36,7 @@ typedef struct { void trapezoid_callback(command_generator_t *generator); void acc_stop_callback(command_generator_t *generator); -trajectory_controller_t controllers[NUM_TC_MAX]; +static trajectory_controller_t controllers[NUM_TC_MAX]; void trapezoid_callback(command_generator_t *generator) { trajectory_controller_t *cont = NULL; @@ -271,6 +271,11 @@ void tc_goto_speed(uint8_t cntr_index, float speed, float acceleration) { if (!cont->enabled) return; + // Disable a possibly running trapezoidal profile + cont->aut.state = TRAPEZOID_STATE_STOP; + remove_callback(&cont->position); + remove_callback(&cont->speed); + cont->aut.speed = speed; cont->aut.dir = SIGN(speed - cont->speed.type.last_output); // Set acceleration sign depending on the current speed hooks/post-receive -- krobot |