long currentTime = 0;
long lastLED2Time = 0;
long lastLED3Time = 0;
long lastLED4Time = 0;
long lastLED5Time = 0;
hw_timer_t *timer1000ms = NULL;
void ARDUINO_ISR_ATTR isrTimer1000ms() {
digitalWrite(2, !digitalRead(2));
}
void setup() {
Serial.begin(115200);
Serial.println("Start!");
//LED pin
pinMode(2, OUTPUT); // LED1
pinMode(16, OUTPUT); // LED2
pinMode(17, OUTPUT); // LED3
pinMode(18, OUTPUT); // LED4
pinMode(19, OUTPUT); // LED5
timer1000ms = timerBegin(1000000);
timerAttachInterrupt(timer1000ms, &isrTimer1000ms);
timerAlarm(timer1000ms, 1000000, true, 0); // 1M=1s, 1s=1,000,000
}
void loop() {
currentTime = millis();
// LED2 0.1 seconds
if (currentTime - lastLED2Time >= 100) {
lastLED2Time = currentTime;
digitalWrite(16, !digitalRead(16)); // Toggle LED
}
// LED3 0.5 seconds
if (currentTime - lastLED3Time >= 500) {
lastLED3Time = currentTime;
digitalWrite(17, !digitalRead(17)); // Toggle LED
}
// LED4 1.5 seconds
if (currentTime - lastLED4Time >= 1500) {
lastLED4Time = currentTime;
digitalWrite(18, !digitalRead(18)); // Toggle LED
}
// LED5 3 seconds
if (currentTime - lastLED5Time >= 3000) {
lastLED5Time = currentTime;
digitalWrite(19, !digitalRead(19)); // Toggle LED
}
}