#include <Arduino.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
// Task handles
TaskHandle_t task1_handle = NULL;
TaskHandle_t task2_handle = NULL;
TaskHandle_t task3_handle = NULL;
// Task functions
void task1(void *pvParameters) {
while (1) {
Serial.println("Task 1 prints");
taskYIELD();
vTaskDelay(pdMS_TO_TICKS(1000)); // Delay for 1 second
}
}
void task2(void *pvParameters) {
while (1) {
Serial.println("Task 2 prints");
taskYIELD();
vTaskDelay(pdMS_TO_TICKS(1000)); // Delay for 1 second
}
}
void task3(void *pvParameters) {
while (1) {
Serial.println("Task 3 prints");
taskYIELD();
vTaskDelay(pdMS_TO_TICKS(1000)); // Delay for 1 second
}
}
void setup() {
Serial.begin(115200);
// Create tasks
xTaskCreate(task1, "Task1", 2000, NULL, 1, &task1_handle);
xTaskCreate(task2, "Task2", 2000, NULL, 1, &task2_handle);
xTaskCreate(task3, "Task3", 2000, NULL, 1, &task3_handle);
// vTaskStartScheduler();
}
void loop() {
// Empty loop, as tasks are managed by FreeRTOS scheduler
vTaskDelay(pdMS_TO_TICKS(1000)); // Delay for 1 second
}