Я хочу использовать функцию 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 мс для моей задачи.
задержка (1);также сбрасывает таймер WDT, но я также не хочу, чтобы он был задержан на 1 мс.
delay (0);не сбрасывать таймер WDT.
delayMicroseconds (100);не сбрасывать таймер WDT.
Каким будет минимальный и правильный способ сброса таймера WDT в ESP32-arduino?