#include <esp_task_wdt.h>
void
t1 (void *p)
{
  int i = 0;

  // https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/wdts.html

  esp_task_wdt_add (NULL);	// if I activate I need to feed watchdog at least every 3 sec (see line 5)
  while (1)
    {
      Serial.println (i++);
      //esp_task_wdt_reset ();
    }
}

#define TWDT_TIMEOUT_MS         3000
#define TASK_RESET_PERIOD_MS    2000
#define MAIN_DELAY_MS           10000

void
setup ()
{
  Serial.begin (115200);
  delay (2000);
  disableCore0WDT ();		// no watchdog on core 1 ??? this is enough
  xTaskCreate (t1, "t1", 10000, NULL, 10, NULL);

      esp_task_wdt_config_t twdt_config = {
        .timeout_ms = TWDT_TIMEOUT_MS,
        .idle_core_mask = (1 << CONFIG_FREERTOS_NUMBER_OF_CORES) - 1,    // Bitmask of all cores
        .trigger_panic = false,
    };
    ESP_ERROR_CHECK(esp_task_wdt_init(&twdt_config));
    printf("TWDT initialized\n");
  //esp_task_wdt_init (tre, true);	// https://iotassistant.io/esp32/enable-hardware-watchdog-timer-esp32-arduino-ide/
 // esp_task_wdt_add (NULL);	// loop ?
}

void
loop ()
{
 esp_task_wdt_reset ();
}


#ifdef NEVERJDN
https:				//docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/wdts.html



https:				//github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal.h#L76-L91

#if CONFIG_AUTOSTART_ARDUINO
//enable/disable WDT for Arduino's setup and loop functions
void enableLoopWDT ();
void disableLoopWDT ();
//feed WDT for the loop task
void feedLoopWDT ();
#endif

//enable/disable WDT for the IDLE task on Core 0 (SYSTEM)
void enableCore0WDT ();
void disableCore0WDT ();
#ifndef CONFIG_FREERTOS_UNICORE
//enable/disable WDT for the IDLE task on Core 1 (Arduino)
void enableCore1WDT ();
void disableCore1WDT ();
#endif

#endif
