#include #include #include #include "buzzer.h" buzzer_handle_t init_buzzer() { struct gpiod_chip *chip = gpiod_chip_open_by_name("gpiochip1"); if (chip == NULL) { fprintf(stderr, "Unable to find gpiochip1\n"); exit(EXIT_FAILURE); } struct gpiod_line *line = gpiod_chip_get_line(chip, 19); if (line == NULL) { fprintf(stderr, "Unable to get line 19\n"); exit(EXIT_FAILURE); } gpiod_line_request_output(line, "buzzer", 0); return (buzzer_handle_t) { chip, line, }; } void sound_buzzer(buzzer_handle_t buzzer, int delay, int length) { for (int cycle = 0; cycle < length; cycle++) { gpiod_line_set_value(buzzer.line, 1); usleep(delay); gpiod_line_set_value(buzzer.line, 0); usleep(delay); } } void destroy_buzzer(buzzer_handle_t buzzer) { gpiod_line_release(buzzer.line); gpiod_chip_close(buzzer.chip); }