TaskHandle_t cpHandle = NULL;
hw_timer_t *timer1 = NULL;
void IRAM_ATTR TimercallBack()
{
timerStop(timer1);
Serial.print("Time is UP!");
Serial.print(" Timer State?: ");
Serial.println(timerStarted(timer1));
}
void timer_init()
{
timer1 = timerBegin(0, 40000, true); // Resolution 0.5ms
timerAttachInterrupt(timer1, TimercallBack, true);
timerAlarmWrite(timer1, 8 * 2000, true);
timerAlarmEnable(timer1);
timerStop(timer1);
// timerAlarmEnable(timer1);
}
void cp_task(void *ptr)
{
timer_init();
while (1)
{
if ( !timerStarted(timer1))
{
// timer_init();
timerStart(timer1);
Serial.println("Time Start/Restart!");
}
Serial.print(xTaskGetTickCount());
Serial.print(" Timer State?: ");
Serial.println(timerStarted(timer1));
vTaskDelay(1000);
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
xTaskCreate(cp_task, "CP_task", 1024 * 3, NULL, 1, &cpHandle);
// Serial.println("Hello, ESP32!");
vTaskDelete(NULL);
}
void loop() {
}