From 16cec914f82f968e5d6e9204414c781ffbca43d9 Mon Sep 17 00:00:00 2001 From: Fritz Heiden Date: Sat, 24 May 2025 15:36:50 +0200 Subject: [PATCH] refactor: put tone generation code into dedicated file --- src/audio/tone_generator.cpp | 54 ++++++++++++++++++++++++++++++++++++ src/audio/tone_generator.hpp | 13 +++++++++ src/main.cpp | 35 ++++++----------------- 3 files changed, 75 insertions(+), 27 deletions(-) create mode 100644 src/audio/tone_generator.cpp create mode 100644 src/audio/tone_generator.hpp diff --git a/src/audio/tone_generator.cpp b/src/audio/tone_generator.cpp new file mode 100644 index 0000000..2878c88 --- /dev/null +++ b/src/audio/tone_generator.cpp @@ -0,0 +1,54 @@ +#include + +#ifndef ANALAOG_OUTPUT_PIN +#define ANALOG_OUTPUT_PIN 3 +#endif + +namespace ToneGenerator +{ + void handleToneGeneration(void *pvParameters); + + bool tone_on = false; + int frequency = 220; // A4 + + void init() + { + pinMode(ANALOG_OUTPUT_PIN, OUTPUT); + xTaskCreate(handleToneGeneration, "handleToneGeneration", 2048, NULL, 1, NULL); + } + + void handleToneGeneration(void *pvParameters) + { + int tone_duration = 100; + while (true) + { + if (tone_on) + { + // tone(ANALOG_OUTPUT_PIN, frequency, tone_duration); + delay(tone_duration); + tone_on = false; + } + delay(10); + } + } + + void setToneOn(bool on) + { + tone_on = on; + } + + bool isToneOn() + { + return tone_on; + } + + void setFrequency(int freq) + { + frequency = freq; + } + + int getFrequency() + { + return frequency; + } +} \ No newline at end of file diff --git a/src/audio/tone_generator.hpp b/src/audio/tone_generator.hpp new file mode 100644 index 0000000..2e23e9b --- /dev/null +++ b/src/audio/tone_generator.hpp @@ -0,0 +1,13 @@ +#ifndef DRUMZ_AUDIO_TONE_GENERATOR_HPP +#define DRUMZ_AUDIO_TONE_GENERATOR_HPP + +namespace ToneGenerator +{ + void init(); + void setToneOn(bool on); + bool isToneOn(); + void setFrequency(int frequency); + int getFrequency(); +} + +#endif // DRUMZ_AUDIO_TONE_GENERATOR_HPP \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 7ef14a5..9faff44 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,5 @@ #include -#include -#include - #define SCREEN_WIDTH 320 #define SCREEN_HEIGHT 240 @@ -10,25 +7,24 @@ #define ENCODER_A_PIN = 12; #define ENCODER_B_PIN = 13; +#define ANALOG_OUTPUT_PIN = 25; + +#include +#include +#include