#include #include #include #define GPIO_BUTTON 16 #define GPIO_BUZZER 15 #define NB_GPIO 2 typedef struct gpio gpio; struct gpio { size_t pin; size_t direction; }; static gpio GPIOS[2] = { (gpio) {.pin = GPIO_BUZZER, .direction = GPIO_OUT}, (gpio) { .pin = GPIO_BUTTON, .direction = GPIO_IN } }; void init_gpio() { gpio_init(PICO_DEFAULT_LED_PIN); gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT); for (size_t i = 0; i < NB_GPIO; i++) { gpio_init(GPIOS[i].pin); gpio_set_dir(GPIOS[i].pin, GPIOS[i].direction); } } int main() { stdio_init_all(); init_gpio(); while (true) { if (!gpio_get(GPIOS[1].pin)) { gpio_put(PICO_DEFAULT_LED_PIN, true); gpio_put(GPIOS[0].pin, true); continue; } gpio_put(GPIOS[0].pin, false); gpio_put(PICO_DEFAULT_LED_PIN, false); } }