#include <stdio.h>
#include "pico/stdlib.h"
#define BUTTON_PIN 8
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();
uint8_t numero = 0;
uint8_t dezenas = 0;
uint8_t unidades = 0;
while(true){
uint8_t dezenas = numero/10;
uint8_t unidades = numero%10;
if (gpio_get(BUTTON_PIN)){
//uint8_t dezenas = numero/10;
//uint8_t unidades = numero%10;
for(int j=0;j<50;j++){
show_digit(0,unidades);
sleep_ms(5);
show_digit(1,dezenas);
sleep_ms(5);
}
numero++;
sleep_ms(100);
}
else{
//uint8_t dezenas = numero/10;
//uint8_t unidades = numero%10;
show_digit(0,unidades);
sleep_ms(5);
show_digit(1,dezenas);
sleep_ms(5);
}
}
return 0;
}
void setup(){
gpio_init(BUTTON_PIN);
gpio_set_dir(BUTTON_PIN, GPIO_IN);
gpio_pull_down(BUTTON_PIN);
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);
}