#include <Arduino.h>
hw_timer_t *timer = NULL;
volatile int currentLED = 0;
const int ledPins[] = {15,2,4,18,19,21,22,23};
bool forward = true;
void IRAM_ATTR onTimer() {
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], LOW);
}
digitalWrite(ledPins[currentLED], HIGH);
if (forward) {
currentLED += 2;
if (currentLED >= 7) {
currentLED = 7;
forward = false;
}
} else {
currentLED -= 2;
if (currentLED <= 0) {
currentLED = 0;
forward = true;
}
}
}
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
}
timer = timerBegin(1e6);
timerAttachInterrupt(timer, &onTimer);
timerAlarm(timer, 1e6, true, 0);
}
void loop() {
}