#include "esp32-hal-timer.h"
hw_timer_t *timer = NULL;
void IRAM_ATTR blink() { digitalWrite(22, !digitalRead(22)); }
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32");
pinMode(23, OUTPUT); // Red LED
pinMode(22, OUTPUT); // Blue LED
pinMode(32, INPUT_PULLDOWN); // Pushbutton
timer = timerBegin(1000000); // 1 microsecond
if (timer == NULL) {
Serial.println("Timer initialization failed!");
while(1); // Stop if timer failed
}
timerAttachInterrupt(timer, &blink); // Attach blink ISR
timerWrite(timer, 0); // Reset count
// Set alarm to trigger every 1 million ticks = 1s
timerAlarm(timer, 1000000, true, 0);
timerStart(timer); // Start the timer
Serial.println("Timer started");
}
void loop() {
digitalWrite(23, digitalRead(32));
}