hw_timer_t *timer1 = NULL;
hw_timer_t *timer2 = NULL;
hw_timer_t *timer4 = NULL;
void ARDUINO_ISR_ATTR LED1(){
static bool ledstate =false;
digitalWrite(2, ledstate);
ledstate=!ledstate;
}
void ARDUINO_ISR_ATTR LED2(){
static bool ledstate =false;
digitalWrite(16, ledstate);
ledstate=!ledstate;
}
void ARDUINO_ISR_ATTR LED4(){
static bool ledstate =false;
digitalWrite(18, ledstate);
ledstate=!ledstate;
}
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(2,OUTPUT);
pinMode(16,OUTPUT);
pinMode(17,OUTPUT);
pinMode(18,OUTPUT);
pinMode(19,OUTPUT);
timer1 = timerBegin(1000000);
timerAttachInterrupt(timer1, &LED1);
timerAlarm(timer1, 1000000, true, 0);
timer2 = timerBegin(1000000);
timerAttachInterrupt(timer2, &LED2);
timerAlarm(timer2, 100000, true, 0);
timer4 = timerBegin(1000000);
timerAttachInterrupt(timer4, &LED4);
timerAlarm(timer4, 150000, true, 0);
}
unsigned long LED3Millis = millis();
uint8_t LED3 = LOW;
unsigned long LED5Millis = millis();
uint8_t LED5 = LOW;
void loop() {
unsigned long now = millis();
if (now > LED3Millis + 500) {
LED3Millis = now;
LED3 = LED3 ? LOW : HIGH;
digitalWrite(17, LED3);
}
if (now > LED5Millis + 3000) {
LED5Millis = now;
LED5 = LED5 ? LOW : HIGH;
digitalWrite(19, LED5);
}
}