#include <stdio.h>
#include "pico/stdlib.h"
const uint8_t segment_pins[] = {5,6,4,2,3,0,1};
const uint8_t display_pins[] = {12,11};
const uint8_t digits[10][7] = {
{1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 0, 0, 0, 0},
{1, 1, 0, 1, 1, 0, 1},
{1, 1, 1, 1, 0, 0, 1},
{0, 1, 1, 0, 0, 1, 1},
{1, 0, 1, 1, 0, 1, 1},
{1, 0, 1, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 0, 0, 1, 1}
};
void setup();
void show_digit(uint8_t display, uint8_t digit);
int main(){
stdio_init_all();
setup();
while(true){
for (uint8_t numero = 0; numero<100; numero++){
uint8_t dezenas = numero/10;
uint8_t unidades = numero%10;
for(int j=0;j<50;j++){
show_digit(1,dezenas);
sleep_ms(5);
show_digit(0,unidades);
sleep_ms(5);
}
sleep_ms(100);
}
}
return 0;
}
void setup(){
for(int i=0;i<7;i++){
gpio_init(segment_pins[i]);
gpio_set_dir(segment_pins[i],GPIO_OUT);
}
for(int i=0;i<2;i++){
gpio_init(display_pins[i]);
gpio_set_dir(display_pins[i],GPIO_OUT);
gpio_put(display_pins[i],0);
}
}
void show_digit(uint8_t display, uint8_t digit){
gpio_put(display_pins[0],1);
gpio_put(display_pins[1],1);
for(int i=0;i<7;i++){
gpio_put(segment_pins[i],digits[digit][i]);
}
gpio_put(display_pins[display],0);
}