#include "esp_timer.h"
const int ledPin = 2;
bool ledState = false;
esp_timer_handle_t timerHandle;
void IRAM_ATTR onTimer(void* arg) {
ledState = !ledState;
digitalWrite(ledPin, ledState);
}
void setup() {
pinMode(ledPin, OUTPUT);
esp_timer_create_args_t timerArgs = {
.callback = &onTimer, // Assign the corrected function
.arg = NULL, // No arguments needed
.dispatch_method = ESP_TIMER_TASK, // Run in a dedicated task
.name = "LED Timer"
};
esp_timer_create(&timerArgs, &timerHandle);
esp_timer_start_periodic(timerHandle, 500000); // 500,000 µs = 500ms
}
void loop() {
// Main loop does nothing; interrupt handles LED blinking
}