/*
Exemplo para a criação de tasks
*/
/*Biblioteca Arduino*/
//#include <Arduino.h>
/*Biblioteca do FreeRTOS*/
/*
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
*/
#include "Arduino_FreeRTOS.h"
#include "task.h"
/*Mapeamento dos pinos*/
#define LED 6
/*variáveis para o armazenamento do hanlde das tasks*/
TaskHandle_t task1Handle = NULL;
TaskHandle_t task2Handle = NULL;
/*Protótipos das tasks*/
void vTask1(void *pvParameters);
void vTask2(void *pvParameters);
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
xTaskCreate(vTask1,"Task1",128,NULL,1,&task1Handle);
xTaskCreate(vTask2,"Task2",128,NULL,2,&task2Handle);
}
void loop() {
}
void vTask1(void *pvParameters)
{
pinMode(LED, OUTPUT);
while(1)
{
digitalWrite(LED,!digitalRead(LED));
vTaskDelay(pdMS_TO_TICKS(200));
}
}
void vTask2(void *pvParameters)
{
int cont = 0;
while(1)
{
Serial.println("Task 2: " + String(cont++));
vTaskDelay(pdMS_TO_TICKS(1000));
}
}