#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define BUTTON_0 GPIO_NUM_4
#define BUTTON_1 GPIO_NUM_15
#define LED_0 GPIO_NUM_21
#define LED_1 GPIO_NUM_19
#define LED_2 GPIO_NUM_18
#define LED_3 GPIO_NUM_5
//Setando os bits relativos aos pinos que serão configurados como entrada
#define GPIO_OUTPUT_PIN_SEL ((1ULL<<LED_0) | (1ULL<<LED_1) | (1ULL<<LED_2) | (1ULL<<LED_3))
//Setando os bits relativos aos pinos que serão configurados como entrada
#define GPIO_INPUT_PIN_SEL ((1ULL<<BUTTON_0) | (1ULL<<BUTTON_1))
void setup() {
//Configura os quatro LEDs
gpio_config_t led_conf = {};
led_conf.intr_type = GPIO_INTR_DISABLE;
led_conf.mode = GPIO_MODE_OUTPUT;
led_conf.pin_bit_mask = GPIO_OUTPUT_PIN_SEL;
led_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;
led_conf.pull_up_en = GPIO_PULLDOWN_DISABLE;
gpio_config(&led_conf);
//Configura os dois botões
gpio_config_t button_conf = {};
button_conf.intr_type = GPIO_INTR_DISABLE;
button_conf.mode = GPIO_MODE_INPUT;
button_conf.pin_bit_mask = GPIO_INPUT_PIN_SEL;
button_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;
button_conf.pull_up_en = GPIO_PULLUP_DISABLE;
gpio_config(&button_conf);
}
void app_main() {
setup();
while(true) {
if (gpio_get_level(BUTTON_0) == 0) {
gpio_set_level(LED_3, 1);
gpio_set_level(LED_2, 1);
gpio_set_level(LED_1, 0);
gpio_set_level(LED_0, 1);
}
else if (gpio_get_level(BUTTON_1) == 0) {
gpio_set_level(LED_3, 1);
gpio_set_level(LED_2, 0);
gpio_set_level(LED_1, 0);
gpio_set_level(LED_0, 1);
}
else{
gpio_set_level(LED_3, 0);
gpio_set_level(LED_2, 0);
gpio_set_level(LED_1, 0);
gpio_set_level(LED_0, 0);
}
}
}