46 lines
954 B
C
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);
|
|
}
|
|
}
|