hw_timer_t *LED1 = NULL;
long int currentTime = 0;
long int lastTime1 = 0;
long int lastTime2 = 0;
long int lastTime3 = 0;
long int lastTime4 = 0;
long int lastTime5 = 0;
bool LED2 = true;
bool LED3 = true;
bool LED4 = true;
bool LED5 = true;
void IRAM_ATTR onLED1Timer(){
digitalWrite(2,!digitalRead(2));
}
void setup() {
pinMode(2, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
pinMode(18, OUTPUT);
pinMode(19, OUTPUT);
LED1 = timerBegin(1000000);
timerAttachInterrupt(LED1, &onLED1Timer);
timerAlarm(LED1, 1000000, true, 0);
}
void loop() {
currentTime = millis();
if(currentTime - lastTime2 >= 100){
lastTime2 = currentTime;
LED2 = !LED2;
digitalWrite(16, LED2);
}
if(currentTime - lastTime3 >= 500){
lastTime3 = currentTime;
LED3 = !LED3;
digitalWrite(17, LED3);
}
if(currentTime - lastTime4 >= 1500){
lastTime4 = currentTime;
LED4 = !LED4;
digitalWrite(18, LED4);
}
if(currentTime - lastTime5 >= 3000){
lastTime5 = currentTime;
LED5 = !LED5;
digitalWrite(19, LED5);
}
}