#include <Arduino.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
//Definição da função da primeira tarefa para piscar o LED
void piscarLED(void *pvParameter){
pinMode(2,OUTPUT);//Configura o pino do LED como saída
while(true){
digitalWrite(2,HIGH);//liga o LED
vTaskDelay(100);//aguarda 100ms
digitalWrite(2,LOW);//desliga o LED
vTaskDelay(pdMS_TO_TICKS(100)); //aguarda 100ms na fila de tarefas prontas
}
}
//Definição da função da segunda tarefa para imprimir no terminal serial
void imprimirIFMA(void *pvParameters){
while(true){
Serial.println("Instituto Federal do Maranhão");
vTaskDelay(pdMS_TO_TICKS(50)); //aguarda 50ms na fila de tarefas prontas
}
}
//Definição da função da terceira tarefa para imprimir no terminal serial
void imprimirNomeAluno(void *pvParameters){
while(true){
Serial.println("Nome do Aluno");
vTaskDelay(pdMS_TO_TICKS(20)); //aguarda 20ms na fila de tarefas prontas
}
}
void setup() {
Serial.begin(115200); //inicializa a comunicação serial
Serial.println("Hello, ESP32!");
//criação da primeira tarefa para piscar o LED
xTaskCreate(
piscarLED, //função da tarefa
"PiscarLED", //nome da tarefa
1000, //tamanho a pilha (em palavras)
NULL, //parâmetros da tarefa
5, //prioridade da tarefa (0 é a menor prioridade)
NULL //identificador da tarefa (opcional)
);
//criação da segunda tarefa para imprimir no temrinal serial
xTaskCreate(
imprimirIFMA, //função da tarefa
"ImprimirIFMA", //nome da tarefa
1000, //tamanho da pilha (em palavras)
NULL, //parâmetros da tarefa
4, //prioridade da tarefa (0 é a menor prioridade)
NULL //identificador da tarefa (opcional)
);
//criação da terceira tarefa para imprimir no terminal serial
xTaskCreate(
imprimirNomeAluno, //função da tarefa
"ImprimirNomeAluno", //nome da tarefa
1000, //tamanho da pilha (em palavras)
NULL, //parâmetros da tarefa
3, //prioridade da tarefa (0 é a menor prioridade)
NULL //identificador da tarefa (opcional)
);
}
void loop() {
//loop vazio, o código da aplicação está nas tarefas
}