//#include <Arduino_ESP32_OTA.h>
#include "freertos/FreeRTOS.h" //incluimos las librerias necesarias para FreeRTOS
#include "freertos/task.h"
int led1 = 4, led2 = 14, led3 = 12;
void tarea1(void *pvParameters) { //definimos la accion que realizara nuestra tarea
while(1){
Serial.println("led 1");
vTaskDelay(2000 / portTICK_PERIOD_MS);
digitalWrite(led3, LOW);
vTaskDelay(4000 / portTICK_PERIOD_MS);
}
}
void tarea2(void *pvParameters) { //definimos la accion que realizara nuestra tarea
while(1){
Serial.println("led 2");
vTaskDelay(2000 / portTICK_PERIOD_MS);
digitalWrite(led2, HIGH);
vTaskDelay(2000 / portTICK_PERIOD_MS);
digitalWrite(led2, LOW);
vTaskDelay(4000 / portTICK_PERIOD_MS);
}
}
void tarea3(void *pvParameters) { //definimos la accion que realizara nuestra tarea
while(1){
Serial.println("led 3");
vTaskDelay(4000 / portTICK_PERIOD_MS);
digitalWrite(led1, HIGH);
vTaskDelay(2000 / portTICK_PERIOD_MS);
digitalWrite(led1, LOW);
vTaskDelay(4000 / portTICK_PERIOD_MS);
}
}
void setup(){ //en el void setup es donde creamos las tareas y definimos sus parametros
Serial.begin(9600);
xTaskCreate(tarea1, "tarea1", 1024, NULL, 1, NULL); //en las tareas definimos su direccion como en este caso es tarea1, luego definimos su nombre que es el mismo, luego indicamos la cantidad de memoria ram que utilizara para la tarea, luego tenemos los espacion en NULL que son parametros que nosotros podemos pasar a la tarea en este caso se omitem, y lo que tenemos como 1, 2 y 3 son la prioridad de la tarea
xTaskCreate(tarea2, "tarea2", 1024, NULL, 2, NULL);
xTaskCreate(tarea3, "tarea3", 1024, NULL, 3, NULL);
}
void loop() {
// put your main code here, to run repeatedly:
}