#include <Arduino_FreeRTOS.h>
#define LED_1 8
#define LED_2 7
void taskBlink1(void *pvParameters);
void taskBlink2(void *pvParameters);
void taskPrint(void *pvParameters);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
xTaskCreate(taskBlink1, "blink1", 128, NULL, 1, NULL);
xTaskCreate(taskBlink2, "blink2", 128, NULL, 1, NULL);
xTaskCreate(taskPrint, "print_task", 128, NULL, 1, NULL);
vTaskStartScheduler();
}
void loop() {
// put your main code here, to run repeatedly:
}
void taskBlink1(void *pvParameters)
{
pinMode(LED_1, OUTPUT);
while(1)
{
digitalWrite(LED_1, HIGH);
vTaskDelay(200 / portTICK_PERIOD_MS);
digitalWrite(LED_1, LOW);
vTaskDelay(200 / portTICK_PERIOD_MS);
}
}
void taskBlink2(void *pvParameters)
{
pinMode(LED_2, OUTPUT);
while(1)
{
digitalWrite(LED_2, HIGH);
vTaskDelay(300 / portTICK_PERIOD_MS);
digitalWrite(LED_2, LOW);
vTaskDelay(300 / portTICK_PERIOD_MS);
}
}
void taskPrint(void *pvParameters)
{
int counter = 0;
while(1)
{
counter++;
Serial.println(counter);
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}