#include <Arduino_FreeRTOS.h>
void TaskBlink(void* pvParameters);
void TaskAnalogRead(void* pvParameters);
const int LED = 2;
void setup() {
// setup pins
pinMode(LED, OUTPUT);
Serial.begin(9600);
while (!Serial);
xTaskCreate(TaskBlink, "Blink", 128, NULL, 2, NULL);
xTaskCreate(TaskAnalogRead, "Analog read", 128, NULL, 1, NULL);
vTaskStartScheduler();
}
void loop() {
// everything is done in tasks
}
void TaskBlink(void* pvParameters) {
while(true) {
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED, HIGH);
vTaskDelay( 1000 / portTICK_PERIOD_MS ); // 1 second
digitalWrite(LED, LOW);
digitalWrite(LED_BUILTIN, LOW);
vTaskDelay( 1000 / portTICK_PERIOD_MS ); // 1 second
}
}
void TaskAnalogRead(void* pvParameters) {
while(true) {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
}
}