#include <Arduino_FreeRTOS.h>
unsigned long previousTime1 = 0;
unsigned long previousTime2 = 0;
unsigned long currentTime1 = 0;
unsigned long currentTime2 = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//criação das funções (tasks)
xTaskCreate(One, "one", 128, NULL, 1, NULL);
xTaskCreate(Two, "two", 128, NULL, 1, NULL);
}
void loop() {
// put your main code here, to run repeatedly:
// o FreeRTOS se emcarrega de executar as tarefas
//ou seja, não coloca nada aqui, animal
}
//definição da task One
void One (void *pvParameters) {
//loop eterno
while (1) {
//Imprime "Tarefa 1" a cada 2 seg
currentTime1 = millis();
if ((currentTime1 - previousTime1) > 2000) {
previousTime1 = currentTime1;
Serial.println("Tarefa 1");
}
}
}
void Two (void *pvParameters) {
//loop eterno
while (1) {
//Imprime "Tarefa 2" a cada 1 seg
currentTime2 = millis();
if ((currentTime2 - previousTime2) > 1000) {
previousTime2 = currentTime2;
Serial.println("Tarefa 2");
}
}
}