#include "dji_task.h" #include "TopDefine.h"//事件组的一些东西 #include "FreeRTOS.h" #include "attrTask.h" #include <cmsis_os2.h> #include "remote_control.h" #include "dji.h" #include "read_spi.h" #include "vofa.h" extern RC_mess_t RC_mess; extern int16_t result; extern int16_t t_result; extern motor_measure_t *trigger_motor_data; Encoder_t encoder; float vofa[8]; int speed=0; float m=0; float trigger_angle_o=0; int mode=0; int angle_6020=0; /** * \brief 电机任务 * * \param argument 未使用 */ void Task_Motor(void *argument) { (void)argument; /* 未使用argument,消除警告 */ const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CTRL_CHASSIS; motor_init(); Encoder_Init(&encoder); uint32_t tick = osKernelGetTickCount(); while(1) { // //收到消息队列新数据 // // 更新编码器数据 // Update_Encoder(&encoder); // m=trigger_angle_o*(8191/360); // trigger_angle_o=-2.5;// // if( mode == THREE ) // { // //当最高点时进入离合 // if(encoder.round_cnt>=6) // { // trigger_angle_o=-2.5; // trigger_pos(m); // } // else // { // trigger_angle_o=0; // trigger_pos(m); // } // } // else if( mode == DZ ) // { // //退出离合 // trigger_angle_o=0; // trigger_pos(m); // } // my_GM6020_control(angle_6020); // CAN_cmd_200(t_result,0,0,0,&hcan1);//在module写好 // osDelay(2); // vofa[0]=motor_3508_data->speed_rpm; // vofa[1]=speed; // vofa_tx_main(vofa); tick += delay_tick; osDelayUntil(tick); } }