#define LED_RED_PIN D10
#define LED_GREEN_PIN D9
#define LED_BLUE_PIN D8
uint8_t SegPin[] = {
LED_RED_PIN, LED_GREEN_PIN, LED_BLUE_PIN
};
hw_timer_t *timer = NULL;
void IRAM_ATTR onTimer() {
static boolean blueOut = LOW;
digitalWrite(LED_BLUE_PIN, blueOut);
blueOut = (blueOut == HIGH)? LOW : HIGH;
}
void task(void *pvParameters){
static boolean greenOut = HIGH;
while (true) {
digitalWrite(LED_GREEN_PIN, greenOut);
greenOut = (greenOut == HIGH)? LOW : HIGH;
delay(500);
}
}
void setup() {
for (uint8_t i = 0; i < sizeof(SegPin); i++) {
digitalWrite(SegPin[i], LOW);
pinMode(SegPin[i], OUTPUT);
}
timer = timerBegin(1000000);
timerAttachInterrupt(timer, &onTimer);
timerAlarm(timer, 1000000 / 4, true, 0);
timerStart(timer);
xTaskCreateUniversal(task, "task", 4096, NULL, 1, NULL, 0);
}
void loop() {
static boolean redOut = HIGH;
while (true) {
digitalWrite(LED_RED_PIN, redOut);
redOut = (redOut == HIGH)? LOW : HIGH;
delay(1000);
}
}
Loading
xiao-esp32-s3
xiao-esp32-s3