我正在通过带有 TTGO 模块的 Visual Studio Code 中的 PlatformIO 使用 ESP-IDF,并希望使用 vTaskDelayUntil() 函数来实现解锁延迟。不幸的是,在使用它时,该任务没有任何反应。
#define INCLUDE_vTaskDelayUntil 1 已在配置中设置。
这是我的代码:
void blink_task(void *pvParameter)
{
TickType_t xLastWakeTime;
const TickType_t DelayLED = 250/portTICK_PERIOD_MS;
xLastWakeTime = xTaskGetTickCount();
bool LEDstatus = false;
gpio_pad_select_gpio(BLINK_GPIO);
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
for(;;){
vTaskDelayUntil( &xLastWakeTime, DelayLED);
if (LEDstatus == false)
{
gpio_set_level(BLINK_GPIO, 0);
LEDstatus = true;
}
else
{
gpio_set_level(BLINK_GPIO, 1);
LEDstatus = false;
}
}
}
extern "C" int app_main(void)
{
xTaskCreatePinnedToCore(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL, 0);
return 0;
}
vTaskDelay() 工作得非常好,但是当我添加另一个任务时会有很大的滞后。这就是我想使用 vTaskDelayUntil 的原因。
有谁知道这里出了什么问题?
非常感谢您提前。
此致,
马丁