#include <Arduino_FreeRTOS.h>
// Task handles
TaskHandle_t Task1;
TaskHandle_t Task2;
// Task functions
void LEDTask(void *pvParameters) {
const int ledPin = 13;
pinMode(ledPin, OUTPUT);
while (1) {
digitalWrite(ledPin, HIGH);
vTaskDelay(500 / portTICK_PERIOD_MS); // Delay 500 ms
digitalWrite(ledPin, LOW);
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}
void SerialTask(void *pvParameters) {
while (1) {
Serial.println("Hello from FreeRTOS!");
vTaskDelay(1000 / portTICK_PERIOD_MS); // Delay 1 second
}
}
void setup() {
Serial.begin(9600);
// Create tasks
xTaskCreate(LEDTask, "LED Task", 128, NULL, 1, &Task1);
xTaskCreate(SerialTask, "Serial Task", 128, NULL, 1, &Task2);
// Start the RTOS scheduler
vTaskStartScheduler();
}
void loop() {
// Empty: RTOS scheduler handles tasks
}