#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
//PROTÓTIPO DE FUNÇÕES===================================================
void app_main(void);
void Task_blink(void *pvParameter);
//DEFINIÇÕES E CONSTATNTES
#define delay(value) vTaskDelay(value/portTICK_PERIOD_MS)
#define LED GPIO_NUM_4
#define GPIO_OUTPUT_PIN_SEL ((1ULL<<LED))//bit_mask
//VARIÁVEIS
int statusLed=0;
void Task_blink(void *pvParameter){
//CONFIGURANDO SAÍDAS
gpio_config_t io_config = {};//variável descritora
io_config.intr_type = GPIO_INTR_DISABLE;//desabilita interrupção externa
io_config.mode = GPIO_MODE_OUTPUT;//configura GPIO como saídas
io_config.pin_bit_mask = GPIO_OUTPUT_PIN_SEL;//carrega GPIOs configuradas
gpio_config(&io_config);//configura GPIO conforme descritor
gpio_set_level(LED, 0);
delay(100);
while(1){
printf("============================================================\n");
statusLed = !statusLed;
if(statusLed == 0){
printf("LED APAGADO!\n");
gpio_set_level(LED, statusLed);
}
else{
printf("LED ACESO!\n");
gpio_set_level(LED, statusLed);
}
delay(2000);
}
}
void app_main(void){
xTaskCreate(Task_blink, " BLINK ", 2048, NULL, 2, NULL);
}