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/fbWB 著作权归作者所有。请勿转载和采集!

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