我想使用xTaskCreatePinnedToCore函数在每个内核上运行两个任务。
以下是出于我的目的而最小化的代码。
#include "esp_task_wdt.h"
void setup() {
BaseType_t result = xTaskCreatePinnedToCore( handleOtherThings, "handleOtherThings", 20000, NULL, 1, NULL, 0 );
}
void handleOtherThings( void* param ) {
while( true ){
esp_task_wdt_reset();
}
}
void loop() {
// put your main code here, to run repeatedly:
}
但是,WDT重置保持触发状态。
如果我使用yield()而不是esp_task_wdt_reset(),什么都不会改变
但是,如果我将esp_task_wdt_reset()更改为vTaskDelay(10 / portTICK_PERIOD_MS),则不会再重置WDT,但是我不希望任务延迟10毫秒。
delay(1);还重置WDT计时器,但我也不想将其延迟1毫秒。
delay(0);不要重置WDT计时器。
delayMicroseconds(100);不要重置WDT计时器。
在ESP32-arduino中重置WDT定时器的最小和正确方法是什么?