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的延迟,否则无法正常检测按键按下 } }

C语言函数:TorqueControlTask - 电流控制任务详解及注释

原文地址: https://www.cveoy.top/t/topic/n4Bg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录