picoco/buzzer/main.c
2025-02-27 17:56:01 +01:00

46 lines
954 B
C

#include <pico/printf.h>
#include <pico/stdlib.h>
#include <hardware/pwm.h>
#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);
}
}