#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "rom/gpio.h"
#define ld_vm 16
#define ld_vd 4
#define ld_az 0
#define ld_am 2
#define ld_rs 15
#define a 22
#define b 23
#define c 17
#define d 5
#define e 18
#define f 21
#define g 19
#define ch1 34
#define ch2 35
#define ch3 32
#define ch4 33
void config_hardware();
void config_saida();
void app_main() {
bool ch1_value,ch2_value,ch3_value,ch4_value;
config_hardware();
config_saida();
vTaskDelay(1000 / portTICK_PERIOD_MS);
while(true){
ch1_value = gpio_get_level(ch1);
ch2_value = gpio_get_level(ch2);
ch3_value = gpio_get_level(ch3);
ch4_value = gpio_get_level(ch4);
//0
if(ch4_value == 0 && ch3_value == 0 && ch2_value == 0 && ch1_value == 0){
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,0);
}
//1
if(ch4_value == 0 && ch3_value == 0 && ch2_value == 0 && ch1_value == 1){
gpio_set_level(a,0);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,0);
gpio_set_level(e,0);
gpio_set_level(f,0);
gpio_set_level(g,0);
}
//2
if(ch4_value == 0 && ch3_value == 0 && ch2_value == 1 && ch1_value == 0){
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,0);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,0);
gpio_set_level(g,1);
}
//3
if(ch4_value == 0 && ch3_value == 0 && ch2_value == 1 && ch1_value == 1){
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,0);
gpio_set_level(f,0);
gpio_set_level(g,1);
}
//4
if(ch4_value == 0 && ch3_value == 1 && ch2_value == 0 && ch1_value == 0){
gpio_set_level(a,0);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,0);
gpio_set_level(e,0);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
//5
if(ch4_value == 0 && ch3_value == 1 && ch2_value == 0 && ch1_value == 1){
gpio_set_level(a,1);
gpio_set_level(b,0);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,0);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
//6
if(ch4_value == 0 && ch3_value == 1 && ch2_value == 1 && ch1_value == 0){
gpio_set_level(a,1);
gpio_set_level(b,0);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
//7
if(ch4_value == 0 && ch3_value == 1 && ch2_value == 1 && ch1_value == 1){
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,0);
gpio_set_level(e,0);
gpio_set_level(f,0);
gpio_set_level(g,0);
}
//8
if(ch4_value == 1 && ch3_value == 0 && ch2_value == 0 && ch1_value == 0){
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
//9
if(ch4_value == 1 && ch3_value == 0 && ch2_value == 0 && ch1_value == 1){
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,0);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
//A
if(ch4_value == 1 && ch3_value == 0 && ch2_value == 1 && ch1_value == 0){
gpio_set_level(a,1);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,0);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
//B
if(ch4_value == 1 && ch3_value == 0 && ch2_value == 1 && ch1_value == 1){
gpio_set_level(a,0);
gpio_set_level(b,0);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
//C
if(ch4_value == 1 && ch3_value == 1 && ch2_value == 0 && ch1_value == 0){
gpio_set_level(a,1);
gpio_set_level(b,0);
gpio_set_level(c,0);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,0);
}
//D
if(ch4_value == 1 && ch3_value == 1 && ch2_value == 0 && ch1_value == 1){
gpio_set_level(a,0);
gpio_set_level(b,1);
gpio_set_level(c,1);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,0);
gpio_set_level(g,1);
}
//E
if(ch4_value == 1 && ch3_value == 1 && ch2_value == 1 && ch1_value == 0){
gpio_set_level(a,1);
gpio_set_level(b,0);
gpio_set_level(c,0);
gpio_set_level(d,1);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
//F
if(ch4_value == 1 && ch3_value == 1 && ch2_value == 1 && ch1_value == 1){
gpio_set_level(a,1);
gpio_set_level(b,0);
gpio_set_level(c,0);
gpio_set_level(d,0);
gpio_set_level(e,1);
gpio_set_level(f,1);
gpio_set_level(g,1);
}
}
}
void config_hardware() {
gpio_pad_select_gpio(ch1);
gpio_set_direction(ch1, GPIO_MODE_INPUT);
gpio_pullup_en(ch1);
gpio_pad_select_gpio(ch2);
gpio_set_direction(ch2, GPIO_MODE_INPUT);
gpio_pullup_en(ch2);
gpio_pad_select_gpio(ch3);
gpio_set_direction(ch3, GPIO_MODE_INPUT);
gpio_pullup_en(ch3);
gpio_pad_select_gpio(ch4);
gpio_set_direction(ch4, GPIO_MODE_INPUT);
gpio_pullup_en(ch4);
gpio_pad_select_gpio(a);
gpio_set_direction(a, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(b);
gpio_set_direction(b, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(c);
gpio_set_direction(c, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(d);
gpio_set_direction(d, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(e);
gpio_set_direction(e, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(f);
gpio_set_direction(f, GPIO_MODE_OUTPUT);
gpio_pad_select_gpio(g);
gpio_set_direction(g, GPIO_MODE_OUTPUT);
}
void config_saida() {
gpio_set_level(a,0);
gpio_set_level(b,0);
gpio_set_level(c,0);
gpio_set_level(d,0);
gpio_set_level(e,0);
gpio_set_level(f,0);
gpio_set_level(g,0);
}
CHAVE
Pot1
BTN1
BTN0
LEDS
DISPLAY