#include <stdio.h>
#include "pico/stdlib.h"
#define DISPLAY {2, 3, 4, 5, 6, 8, 7, 9} // A B C D E F G
#define btn 17
void display(bool A, bool B, bool C, bool D, bool E, bool F, bool G, bool P);
void apaga_display();
int main() {
stdio_init_all();
bool btn_press = false;
int dsp[] = DISPLAY;
int led = 0;
char entrada[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'P'};
// CONFIGURANDO AS PORTAS
gpio_init(btn);
gpio_set_dir(btn, GPIO_IN);
for (int i = 0; i < 8; i++) {
gpio_init(dsp[i]);
gpio_set_dir(dsp[i], GPIO_OUT);
gpio_put(dsp[i], 1);
}
sleep_ms(500);
apaga_display();
while(true) {
btn_press = gpio_get(btn);
if (btn_press == 1) {
for (int i = 0; i < 8; i++) {
gpio_put(dsp[i], 1);
sleep_ms(100);
gpio_put(dsp[i], 0);
}
for (int i = 0; i < 10; i++) {
disp_print(i);
sleep_ms(1000);
}
apaga_display();
}
}
}
void disp_print(int n) {
if (n == 0) display(1, 1, 1, 1, 1, 1, 0, 1);
else if (n == 1) display(0, 1, 1, 0, 0, 0, 0, 0);
else if (n == 2) display(1, 1, 0, 1, 1, 0, 1, 1);
else if (n == 3) display(1, 1, 1, 1, 0, 0, 1, 0);
else if (n == 4) display(0, 1, 1, 0, 0, 1, 1, 1);
else if (n == 5) display(1, 0, 1, 1, 0, 1, 1, 0);
else if (n == 6) display(1, 0, 1, 1, 1, 1, 1, 1);
else if (n == 7) display(1, 1, 1, 0, 0, 0, 0, 0);
else if (n == 8) display(1, 1, 1, 1, 1, 1, 1, 1);
else if (n == 9) display(1, 1, 1, 1, 0, 1, 1, 0);
}
void display(bool A, bool B, bool C, bool D, bool E, bool F, bool G, bool P) {
int dsp[] = DISPLAY;
gpio_put(dsp[0], A);
gpio_put(dsp[1], B);
gpio_put(dsp[2], C);
gpio_put(dsp[3], D);
gpio_put(dsp[4], E);
gpio_put(dsp[5], F);
gpio_put(dsp[6], G);
gpio_put(dsp[7], P);
}
void apaga_display() {
int dsp[] = DISPLAY;
for (int i = 0; i < 8; i++) {
gpio_put(dsp[i], 0);
}
}