Extract buzzer to separate file

This commit is contained in:
cryptogopher
2022-10-09 21:36:40 +02:00
parent f8878d3c37
commit 7fe04d76cb
4 changed files with 54 additions and 24 deletions

View File

@@ -2,7 +2,6 @@
#include "SAMD_ISR_Timer.h"
SAMDTimer TaskTimer(TIMER_TC3);
SAMDTimer BuzzerTimer(TIMER_TC5);
SAMD_ISR_Timer TasksISRs;
void TasksHandler(void) { TasksISRs.run(); }
@@ -26,40 +25,25 @@ volatile float temperature = 0.0;
void setup() {
initButton();
initTemperature();
initBME280();
initBuzzer();
initTube();
pinMode(BUZZER_PIN, OUTPUT);
BuzzerTimer.attachInterrupt(BUZZER_FREQ *2, buzz);
BuzzerTimer.disableTimer();
TaskTimer.attachInterruptInterval_MS(25, TasksHandler);
TaskTimer.attachInterruptInterval_MS(20, TasksHandler);
TasksISRs.setInterval(PERIOD_MS, runMetronome);
TasksISRs.setInterval(PERIOD_MS, readTemperature);
TasksISRs.setInterval(PERIOD_MS, updateTube);
}
volatile bool buzzing = false;
void buzz() {
digitalWrite(BUZZER_PIN, buzzing ? LOW : HIGH);
buzzing = !buzzing;
}
void stopBuzzer() {
BuzzerTimer.disableTimer();
digitalWrite(BUZZER_PIN, LOW);
}
void runMetronome() {
if (countdown > 0) {
countdown -= 1;
digitalWrite(BUTTON_LED_PIN, countdown % 2 ? HIGH : LOW);
} else if (countdown == 0) {
TasksISRs.setTimeout(100, stopBuzzer);
BuzzerTimer.enableTimer();
TasksISRs.setTimeout(100, noBuzz);
buzz();
}
}
void loop() {
}
void loop() {}