#include "pico/stdlib.h"
#define LED_PIN 13
#define BTN_PIN 5
#define BUZZER_PIN 10
static void gpio_irq_handler(uint gpio, uint32_t events);
int main()
{
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
gpio_init(BTN_PIN);
gpio_set_dir(BTN_PIN, GPIO_IN);
gpio_pull_down(BTN_PIN);
gpio_init(BUZZER_PIN);
gpio_set_dir(BUZZER_PIN, GPIO_OUT);
gpio_set_irq_enabled_with_callback(BTN_PIN, GPIO_IRQ_EDGE_RISE | GPIO_IRQ_EDGE_FALL, true, &gpio_irq_handler);
while (1)
{
sleep_ms(10);
}
}
void gpio_irq_handler (uint gpio, uint32_t events)
{
if (events & GPIO_IRQ_EDGE_RISE) {
gpio_put(LED_PIN, 1);
gpio_put(BUZZER_PIN, 1);
}
else if (events & GPIO_IRQ_EDGE_FALL) {
gpio_put(LED_PIN, 0);
gpio_put(BUZZER_PIN, 0);
}
}