// FreeRTOS Multitasking Demo - XIAO ESP32-S3
// Two tasks blinking LEDs at different rates
const int LED1 = D2;
const int LED2 = D3;
void TaskBlinkFast(void *pvParameters) {
pinMode(LED1, OUTPUT);
while (true) {
digitalWrite(LED1, HIGH);
vTaskDelay(300 / portTICK_PERIOD_MS);
digitalWrite(LED1, LOW);
vTaskDelay(300 / portTICK_PERIOD_MS);
}
}
void TaskBlinkSlow(void *pvParameters) {
pinMode(LED2, OUTPUT);
while (true) {
digitalWrite(LED2, HIGH);
vTaskDelay(700 / portTICK_PERIOD_MS);
digitalWrite(LED2, LOW);
vTaskDelay(700 / portTICK_PERIOD_MS);
}
}
void setup() {
xTaskCreate(TaskBlinkFast, "FastBlink", 2048, NULL, 1, NULL);
xTaskCreate(TaskBlinkSlow, "SlowBlink", 2048, NULL, 1, NULL);
}
void loop() {
// Nothing here — FreeRTOS handles everything
}Loading
xiao-esp32-s3
xiao-esp32-s3