#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/irq.h"
#include "hardware/gpio.h"
// Define o pino do botão
#define BUTTON_PIN 15
// Função de interrupção chamada quando o botão é pressionado
void gpio_callback(uint gpio, uint32_t events) {
printf("Interrupção detectada no pino %d! Evento: %d\n", gpio, events);
}
// Configuração do botão como entrada com pull-up
void config_button(){
gpio_init(BUTTON_PIN);
gpio_set_dir(BUTTON_PIN, GPIO_IN);
gpio_pull_up(BUTTON_PIN);
}
int main() {
stdio_init_all(); // Inicializa a comunicação serial para saída no terminal
printf("Iniciando interrupção GPIO no Raspberry Pi Pico W\n");
config_button();
// Configura a interrupção no botão para borda de descida (pressionado)
gpio_set_irq_enabled_with_callback(BUTTON_PIN, GPIO_IRQ_EDGE_FALL, true, &gpio_callback);
// Loop principal vazio (a ISR trata os eventos)
while (true) {
tight_loop_contents(); // Evita que o compilador otimize o loop
}
return 0;
}