shoot/User/task/dji_task.c
2025-03-15 16:42:56 +08:00

78 lines
1.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
/**
* \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);
if( mode == THREE )
{
//当最高点时进入离合
if(encoder.round_cnt>=8)
{
trigger_angle_o=2;
trigger_pos(m);
}
}
else if( mode == DZ )
{
//退出离合
trigger_angle_o=0;
trigger_pos(m);
}
CAN_cmd_200(t_result,0,0,0,&hcan1);
osDelay(2);
// vofa[0]=motor_3508_data->speed_rpm;
// vofa[1]=speed;
// vofa_tx_main(vofa);
tick += delay_tick;
osDelayUntil(tick);
}
}