Sporttafel/src/beeper.cpp
2025-03-13 14:47:14 +01:00

34 lines
675 B
C++

#include "beeper.h"
#include <Arduino.h>
#define BEEPER_GPIO 22
#define BEEPER_INVERT true
unsigned long beeperDuration = 0;
unsigned long beeperLast = 0;
void beeperEnable(const bool enabled) {
digitalWrite(BEEPER_GPIO, (enabled ^ BEEPER_INVERT) ? HIGH : LOW);
}
void beeperSetup() {
pinMode(BEEPER_GPIO, OUTPUT);
beeperEnable(false);
}
void beeperLoop() {
const auto now = millis();
if (beeperDuration != 0 && now - beeperLast >= beeperDuration) {
beeperEnable(false);
beeperDuration = 0;
}
}
void beep(const unsigned long duration) {
beeperDuration = duration;
beeperLast = millis();
beeperEnable(beeperDuration > 0);
}