#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "rom/gpio.h"
#define ld_vm 16 //Define led vermelho
#define ld_vd 4 //Led verde
#define ld_az 0 //Led azul
#define ld_am 2 //Led amarelo
#define ld_rs 15 //Led rosa
void config_hardware();
void config_saida();
void app_main(void)
{
bool al_value, sd_value, se_value;
bool le_value, ld_value;
config_hardware();
config_saida();
vTaskDelay(1000/portTICK_PERIOD_MS);
while (true)
{
al_value = gpio_get_level(al); //1 - Le a chave de controle do pisca alerta
se_value = gpio_get_level(se); //2 - Le chave de controle da seta esquerda
sd_value = gpio_get_level(sd); //3 - Le a chave de controle da seta da direita
le_value = (!al_value) | (!se_value & sd_value);
ld_value = (!al_value) | (se_value & !sd_value);
gpio_set_level(le, le_value);
gpio_set_level(ld,ld_value);
vTaskDelay(1000/portTICK_PERIOD_MS);
gpio_set_level(le,0);
gpio_set_level(ld,0);
vTaskDelay(1000/portTICK_PERIOD_MS);
}
}
void config_hardware(){
gpio_pad_select_gpio(ld_vm);
gpio_set_direction(ld_vm, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ld_vd);
gpio_set_direction(ld_vd, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ld_az);
gpio_set_direction(ld_az, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ld_am);
gpio_set_direction(ld_am, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(ld_rs);
gpio_set_direction(ld_rs, GPIO_MODE_OUTPUT);
}
void config_saida(){
gpio_set_level(ld_vm,0);
gpio_set_level(ld_vd,0);
gpio_set_level(ld_az,0);
gpio_set_level(ld_am,0);
}CHAVE
Pot1
BTN1
BTN0
LEDS
DISPLAY