#include "pico/stdlib.h"
// Definição dos pinos dos segmentos do display
const uint8_t segment_pins1[] = {0, 1, 2, 3, 4, 5, 6};
const uint8_t segment_pins2[] = {22, 21, 20, 19, 18, 17, 16};
// Mapeamento dos dígitos para os segmentos do display
const uint8_t digits[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 0, 0, 1, 1} // 9
};
// Função para exibir um dígito no display
void display_digit(uint8_t digit, uint8_t *segment) {
for (int i = 0; i < 7; i++) {
gpio_put(segment[i], digits[digit][i]);
}
}
void init_pins(){
for (int i = 0; i < 7; i++) {
gpio_init(segment_pins1[i]);
gpio_set_dir(segment_pins1[i], GPIO_OUT);
gpio_init(segment_pins2[i]);
gpio_set_dir(segment_pins2[i], GPIO_OUT);
}
}
int main() {
stdio_init_all();
init_pins();
uint8_t display1 = 0;
uint8_t display2= 0;
while (true) {
display_digit(display1, segment_pins1); // Exibe o dígito atual no display
display_digit(display2, segment_pins2); // Exibe o dígito atual no display
sleep_ms(1000); // Espera 1 segundo
display1++; // Incrementa o contador
if (display1 > 5) {
display1 = 0; // Reinicia o contador após 9
display2++;
}
if(display2 > 5){
display1 = 5;
display2 = 5;
break;
}
}
return 0;
}