#include "pico/stdlib.h"

#define LED_PIN 13   // Definição do GPIO do LED no GP 13 da Raspberry Pi Pico
#define BTN_A_PIN 5  // Definição do GPIO do botão A no GP 5 da Raspberry Pi Pico
#define BTN_B_PIN 6  // Definição do GPIO do botão B no GP 6 da Raspberry Pi Pico

int main() 
{
    // Inicialização dos pinos
    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);  // Configurar o LED como saída

    gpio_init(BTN_A_PIN);
    gpio_set_dir(BTN_A_PIN, GPIO_IN);  // Configurar o botão A como entrada
    gpio_pull_up(BTN_A_PIN);           // Habilitar pull-up interno no botão A

    gpio_init(BTN_B_PIN);
    gpio_set_dir(BTN_B_PIN, GPIO_IN);  // Configurar o botão B como entrada
    gpio_pull_up(BTN_B_PIN);           // Habilitar pull-up interno no botão B

    int buttn_a_press_cnt = 0;  // Contador de pressões do botão A
    int blink_frequency = 10;    // Frequência inicial do LED (10 Hz)
    bool is_blinking = false;    // Flag para controlar o estado de piscagem

    while (1) 
    {
        // Verificar se o botão A foi pressionado
        if (!gpio_get(BTN_A_PIN)) // Botão pressionado (estado baixo)
        {
            sleep_ms(20); // Debounce para evitar leituras falsas do botão A
            if (!gpio_get(BTN_A_PIN)) // Confirma a leitura do botão A 
            {
                // Incrementa o contador em 1 unidade
                buttn_a_press_cnt++;
                while (!gpio_get(BTN_A_PIN)); // Espera o botão ser solto
            }
        }

        // Se o botão A for pressionado 5 vezes
        if (buttn_a_press_cnt == 5) {
            is_blinking = true; // Ativa a flag de piscagem
            for (int i = 0; i < blink_frequency * 10; i++) { // Pisca por 10 segundos
                gpio_put(LED_PIN, 1);  // Liga o LED
                sleep_ms(500 / blink_frequency);  // Tempo ligado
                gpio_put(LED_PIN, 0);  // Desliga o LED
                sleep_ms(500 / blink_frequency);  // Tempo desligado

                // Verifica se o botão B foi pressionado durante a piscagem
                 if (!gpio_get(BTN_B_PIN)) {
           sleep_ms(20);  // Debounce para evitar leituras falsas do botão B
           if (!gpio_get(BTN_B_PIN)) { // Alterna entre 10 Hz e 1 Hz
                blink_frequency = (blink_frequency == 10) ? 1 : 10; 
                while (!gpio_get(BTN_B_PIN));  // Espera o botão ser solto
            }
        
                    
                }
            }
            buttn_a_press_cnt = 0;  // Reseta o contador
            blink_frequency = 1;
        }
    }

}
$abcdeabcde151015202530354045505560fghijfghij
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT