C语言函数:TorqueControlTask - 电流控制任务详解及注释
void TorqueControlTask(void *argument) { TickType_t xLastWakeTime = xTaskGetTickCount(); // 获取当前系统时间 float Iq = 0; // 初始化电流控制值
while (1) { // 进入死循环
if (button_press_pending_flag) { // 检查按钮是否按下
if (button_left_press_pending_flag) { // 检查左按钮是否按下
Iq -= 100.0; // 减少电流
} else if (button_right_press_pending_flag) { // 检查右按钮是否按下
Iq += 100.0; // 增加电流
} else if (button_cancel_press_pending_flag) { // 检查取消按钮是否按下
SuspendToRunOtherTask(taskSelectTaskHandle); // 暂停当前任务并运行其他任务
continue; // 继续循环
}
button_reset_all_flags(); // 重置所有按钮的状态
}
FOC_current_control_loop(Iq); // 进行电流控制
//vTaskDelayUntil(&xLastWakeTime,
// 1); // 每个FOC控制任务需要至少1ms的延迟,否则无法正常检测按键按下 } }
原文地址: https://www.cveoy.top/t/topic/n4Bg 著作权归作者所有。请勿转载和采集!