72 lines
2.0 KiB
C
72 lines
2.0 KiB
C
#include "user_task.h"
|
|
#include "vofa.h"
|
|
|
|
|
|
/*******************************************************************
|
|
|
|
该任务用来给上位机打印固定频率的数据 如波形图 如电机的开环曲线等等
|
|
|
|
|
|
用消息队列将需要打印的数据传送给该线程 注意需要在init里设定传送的数据的大小
|
|
|
|
后调用发送函数用虚拟串口发送给上位机
|
|
|
|
*********************************************************************/
|
|
#include "can_use.h"
|
|
|
|
|
|
#ifdef DEBUG
|
|
//此处数组的大小为打印的通道数量值
|
|
float vofa_data[6]= {0};
|
|
CAN_t can_vofa;
|
|
CAN_Output_t out_print;
|
|
|
|
void Task_data_print(void *argument)
|
|
{
|
|
(void)argument;/*消除警告*/
|
|
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_PRINT ;
|
|
|
|
uint32_t tick = osKernelGetTickCount();
|
|
|
|
while(1)
|
|
{
|
|
/* 记录任务所使用的的栈空间 */
|
|
task_runtime.stack_water_mark.data_print =
|
|
osThreadGetStackSpace(osThreadGetId());
|
|
|
|
// if (osMessageQueueGet(task_runtime.msgq.can.output.chassis6020,
|
|
// &(out_print.chassis6020), 0, 0) == osOK)
|
|
// {
|
|
//
|
|
// }
|
|
// if (osMessageQueueGet(task_runtime.msgq.can.output.chassis3508,
|
|
// &(out_print.motor3508), 0, 0) == osOK)
|
|
// {
|
|
//
|
|
// }
|
|
// if (osMessageQueueGet(task_runtime.msgq.can.output.chassis5065,
|
|
// &(out_print.chassis5065), 0, 0) == osOK)
|
|
// {
|
|
//
|
|
// }
|
|
// osMessageQueueGet(task_runtime.msgq.can.feedback.chassisfed6020, &can_vofa, NULL, 0);
|
|
//
|
|
// osMessageQueueGet(task_runtime.msgq.can.feedback.chassisfed5065, &can_vofa, NULL, 0);
|
|
//
|
|
// osMessageQueueGet(task_runtime.msgq.can.feedback.chassisfed3508, &can_vofa, NULL, 0);
|
|
//
|
|
//// vofa_data[0] = can_vofa.motor.chassis6020.as_array[0].torque_current;
|
|
// vofa_data[0] = can_vofa.motor.chassis6020.as_array[0].rotor_angle;
|
|
// vofa_data[1] = out_print.chassis6020.as_array[0];
|
|
////
|
|
// vofa_tx_main(vofa_data);
|
|
|
|
tick += delay_tick;
|
|
osDelayUntil(tick);
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|