#include <Arduino.h>
#include <STM32FreeRTOS.h>
void GreenTask(void *pvParameters) {
pinMode(PA1, OUTPUT);
while (true) {
digitalWrite(PA1, !digitalRead(PA1));
}
}
void BlueTask(void *pvParameters) {
pinMode(PA0, OUTPUT);
while (true) {
digitalWrite(PA0, HIGH);
vTaskDelay(500 / portTICK_PERIOD_MS);
digitalWrite(PA0, LOW);
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}
void RedTask(void *pvParameters) {
pinMode(PA4, OUTPUT);
while (true) {
digitalWrite(PA4, HIGH);
vTaskDelay(1000 / portTICK_PERIOD_MS);
digitalWrite(PA4, LOW);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
void setup() {
Serial.begin(115200);
BaseType_t result;
result = xTaskCreate(GreenTask, "Green", 128, NULL, tskIDLE_PRIORITY + 3, NULL);
if (result != pdPASS) while (1);
result = xTaskCreate(BlueTask, "Blue", 128, NULL, tskIDLE_PRIORITY + 2, NULL);
if (result != pdPASS) while (1);
result = xTaskCreate(RedTask, "Red", 128, NULL, tskIDLE_PRIORITY + 1, NULL);
if (result != pdPASS) while (1);
vTaskStartScheduler();
}
void loop() {}