summaryrefslogtreecommitdiff
path: root/project_starter_files/Core/Inc/tone.h
diff options
context:
space:
mode:
authorgithub-classroom[bot] <66690702+github-classroom[bot]@users.noreply.github.com>2025-08-26 17:03:24 +0000
committerGitHub <noreply@github.com>2025-08-26 17:03:24 +0000
commit0f2ea7deaf0cba2f0ca07f6611c5a9e87d531f5b (patch)
tree66b32e47da7602942f1bf4b7d343367ac408cd5a /project_starter_files/Core/Inc/tone.h
download340-repo-Sowgro-0f2ea7deaf0cba2f0ca07f6611c5a9e87d531f5b.tar.gz
340-repo-Sowgro-0f2ea7deaf0cba2f0ca07f6611c5a9e87d531f5b.tar.bz2
340-repo-Sowgro-0f2ea7deaf0cba2f0ca07f6611c5a9e87d531f5b.zip
Initial commit
Diffstat (limited to 'project_starter_files/Core/Inc/tone.h')
-rw-r--r--project_starter_files/Core/Inc/tone.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/project_starter_files/Core/Inc/tone.h b/project_starter_files/Core/Inc/tone.h
new file mode 100644
index 0000000..b30e252
--- /dev/null
+++ b/project_starter_files/Core/Inc/tone.h
@@ -0,0 +1,49 @@
+/*
+ * tone.h
+ *
+ * Created on: May 14, 2022
+ * Author: bruce
+ */
+
+#ifndef INC_TONE_H_
+#define INC_TONE_H_
+
+#include "dac.h"
+
+/**
+ * SysTick handler. Since tones are controlled by software, the SysTick timer
+ * must be used accurately manage the times.
+ */
+void SysTick_Handler();
+
+/**
+ * Accessor for the counter. Useful for knowing what the current "time" is
+ * in the system.
+ */
+uint32_t get_counter ();
+
+void reset_counter ();
+
+/**
+ * Utility function that converts a frequency into a Systick timer ticks.
+ */
+uint32_t hertz_to_systicks (float hertz);
+
+/**
+ * Adds a tone to be played.
+ */
+uint8_t add_tone (uint8_t note, uint8_t velocity);
+
+/**
+ * Removes a tone from the current group of tones that can be played.
+ */
+uint8_t remove_tone (uint8_t note);
+
+
+/**
+ * Starts playing any tones that have been added.
+ */
+void play_tones ();
+
+
+#endif /* INC_TONE_H_ */