From: Xavier L. <Ba...@us...> - 2011-03-18 22:54:33
|
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 97c23c71ca7612812e3e6e1faaa59b75084b2c68 (commit) from 2575398f14920cd962c2ed4aae14093114df62ca (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 97c23c71ca7612812e3e6e1faaa59b75084b2c68 Author: Xavier Lagorce <Xav...@cr...> Date: Fri Mar 18 23:53:46 2011 +0100 [Controller_Motor_STM32] Try to transmit floats in can_monitor ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/can_monitor.c b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/can_monitor.c index a7369a2..f853175 100644 --- a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/can_monitor.c +++ b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/can_monitor.c @@ -18,11 +18,21 @@ typedef struct { uint16_t padding __attribute__((__packed__)); } encoder_msg_t; +typedef struct { + float position __attribute__((__packed__)); + float speed __attribute__((__packed__)); +} motor_msg_t; + typedef union { - encoder_msg_t data_f; + encoder_msg_t data; uint32_t data32[2]; } encoder_can_msg_t; +typedef struct { + motor_msg_t data; + uint32_t data32[2]; +} motor_can_msg_t; + // Process for communication static void NORETURN canMonitor_process(void); @@ -44,13 +54,13 @@ void canMonitorInit(void) { } static void NORETURN canMonitor_process(void) { - encoder_can_msg_t msg; + encoder_can_msg_t msg_enc; + motor_can_msg_t msg_mot; can_tx_frame txm; Timer timer_can; - uint8_t ind = 0; // Initialize constant parameters of TX frame - txm.dlc = 6; + txm.dlc = 8; txm.rtr = 0; txm.ide = 1; txm.sid = 0; @@ -61,28 +71,35 @@ static void NORETURN canMonitor_process(void) { timer_add(&timer_can); - // Sending ENCODER1 and ENCODER2 data - msg.data_f.encoder1_pos = getEncoderPosition(ENCODER1); - msg.data_f.encoder2_pos = getEncoderPosition(ENCODER2); - msg.data_f.encoder1_dir = getEncoderDirection(ENCODER1); - msg.data_f.encoder2_dir = getEncoderDirection(ENCODER2); + // Sending ENCODER3 and ENCODER4 data + msg_enc.data.encoder1_pos = getEncoderPosition(ENCODER3); + msg_enc.data.encoder2_pos = getEncoderPosition(ENCODER4); + msg_enc.data.encoder1_dir = getEncoderDirection(ENCODER3); + msg_enc.data.encoder2_dir = getEncoderDirection(ENCODER4); - txm.data32[0] = msg.data32[0]; - txm.data32[1] = msg.data32[1]; + txm.data32[0] = msg_enc.data32[0]; + txm.data32[1] = msg_enc.data32[1]; txm.eid = 100; can_transmit(CAND1, &txm, ms_to_ticks(10)); - // Sending ENCODER3 and ENCODER4 data - msg.data_f.encoder1_pos = getEncoderPosition(ENCODER3); - msg.data_f.encoder2_pos = getEncoderPosition(ENCODER4); - msg.data_f.encoder1_dir = getEncoderDirection(ENCODER3); - msg.data_f.encoder2_dir = getEncoderDirection(ENCODER4); + // Sending MOTOR3 data + msg_mot.data.position = mc_getPosition(MOTOR3); + msg_mot.data.speed = mc_getSpeed(MOTOR3); - txm.data32[0] = msg.data32[0]; - txm.data32[1] = msg.data32[1]; + txm.data32[0] = msg_mot.data32[0]; + txm.data32[1] = msg_mot.data32[1]; txm.eid = 101; can_transmit(CAND1, &txm, ms_to_ticks(10)); + // Sending MOTOR4 data + msg_mot.data.position = mc_getPosition(MOTOR4); + msg_mot.data.speed = mc_getSpeed(MOTOR4); + + txm.data32[0] = (int32_t)mc_getPosition(MOTOR4);//msg_mot.data32[0]; + txm.data32[1] = (int32_t)mc_getSpeed(MOTOR4);//msg_mot.data32[1]; + txm.eid = 102; + can_transmit(CAND1, &txm, ms_to_ticks(10)); + // Wait for the next transmission timer timer_waitEvent(&timer_can); } diff --git a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/can_monitor.h b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/can_monitor.h index 0e5e3a1..9f5be0c 100644 --- a/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/can_monitor.h +++ b/elec/boards/Controller_Motor_STM32/Firmware/controller_motor_stm32/can_monitor.h @@ -14,6 +14,7 @@ #include <drv/timer.h> #include "encoder.h" +#include "motor_controller.h" void canMonitorInit(void); 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 bd62ea4..d6a4116 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 @@ -82,7 +82,7 @@ static void NORETURN square_process(void) static void NORETURN goto_process(void) { - float inc = 3.6; + float inc = 1.8; float ref = 0; int32_t dt= 5; uint8_t ind = 0; @@ -97,7 +97,7 @@ static void NORETURN goto_process(void) timer_delay(dt); } timer_delay(1000); - mc_delete_controller(MOTOR3); + //mc_delete_controller(MOTOR3); mc_delete_controller(MOTOR4); LED1_OFF(); } hooks/post-receive -- krobot |