summaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-12-12 00:25:31 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-12-12 00:25:31 -0500
commit2fe47fb3bd700acebf07cd777e3a1ecb49fb9f46 (patch)
tree53a470470b92acbc417de577f12ebf68dfbcd17a /project
parent29f69b5b7831c846cea1f61a7de4920fafa97ede (diff)
download340-repo-Sowgro-2fe47fb3bd700acebf07cd777e3a1ecb49fb9f46.tar.gz
340-repo-Sowgro-2fe47fb3bd700acebf07cd777e3a1ecb49fb9f46.tar.bz2
340-repo-Sowgro-2fe47fb3bd700acebf07cd777e3a1ecb49fb9f46.zip
reduce warnings, try to get passive speaker to work
Diffstat (limited to '')
-rw-r--r--project/.settings/language.settings.xml4
-rw-r--r--project/Core/Inc/Activities/activity4.h2
-rw-r--r--project/Core/Inc/Project/player.h24
-rw-r--r--project/Core/Inc/Project/song_info.h2
-rw-r--r--project/Core/Src/Activties/activity13.c15
-rw-r--r--project/Core/Src/Activties/activity4.c10
-rw-r--r--project/Core/Src/Project/player.c12
-rw-r--r--project/Core/Src/Project/player_actions.c3
-rw-r--r--project/Core/Src/Project/song_info.c3
-rw-r--r--project/Core/Src/main.c4
10 files changed, 52 insertions, 27 deletions
diff --git a/project/.settings/language.settings.xml b/project/.settings/language.settings.xml
index ec1bb84..ae082b2 100644
--- a/project/.settings/language.settings.xml
+++ b/project/.settings/language.settings.xml
@@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
- <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1037502373549229776" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+ <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="781097053452714720" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
- <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1037502373549229776" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+ <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="781097053452714720" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
diff --git a/project/Core/Inc/Activities/activity4.h b/project/Core/Inc/Activities/activity4.h
index fb9d5ce..2a3c714 100644
--- a/project/Core/Inc/Activities/activity4.h
+++ b/project/Core/Inc/Activities/activity4.h
@@ -18,6 +18,6 @@ typedef struct {
void activity4_run();
-header_t *get_header(uint8_t *p_song);
+header_t get_header(uint8_t *p_song);
#endif /* INC_ACTIVITIES_ACTIVITY4_H_ */
diff --git a/project/Core/Inc/Project/player.h b/project/Core/Inc/Project/player.h
new file mode 100644
index 0000000..23853cb
--- /dev/null
+++ b/project/Core/Inc/Project/player.h
@@ -0,0 +1,24 @@
+/*
+ * player.h
+ *
+ * Created on: Dec 10, 2025
+ * Author: sowgro
+ */
+
+#ifndef INC_PROJECT_PLAYER_H_
+#define INC_PROJECT_PLAYER_H_
+
+typedef struct {
+ uint8_t ev_type;
+ uint32_t abs_time;
+ uint8_t key_number;
+ uint8_t value;
+} note_event_t;
+
+note_event_t NULL_EVENT = {10, 0, 0, 0};
+
+void parse_song(uint8_t *p_song);
+
+uint8_t *parse_track(uint8_t *p_song, note_event_t *events);
+
+#endif /* INC_PROJECT_PLAYER_H_ */
diff --git a/project/Core/Inc/Project/song_info.h b/project/Core/Inc/Project/song_info.h
index c951fca..9d6d5e6 100644
--- a/project/Core/Inc/Project/song_info.h
+++ b/project/Core/Inc/Project/song_info.h
@@ -14,6 +14,6 @@ typedef struct {
int tempo;
} song_info_t;
-song_info_t get_song_info(uint8_t *p_song, song_info_t *ret);
+uint8_t *get_song_info(uint8_t *p_song, song_info_t *ret);
#endif /* INC_PROJECT_SONG_INFO_H_ */
diff --git a/project/Core/Src/Activties/activity13.c b/project/Core/Src/Activties/activity13.c
index 19eb0a4..16c2c1b 100644
--- a/project/Core/Src/Activties/activity13.c
+++ b/project/Core/Src/Activties/activity13.c
@@ -7,20 +7,27 @@
#include <stdint.h>
#include <stdio.h>
#include "systick.h"
+#include "tone.h"
+#include "dac.h"
//write 1s for half the freq and 0s for the other half
void play_freq(uint8_t hz) {
- uint32_t rollover =herz_to_systicks(hz);
+ uint32_t rollover = hertz_to_systicks(hz);
int count = systick_get_count();
- if ((count % rollover) < (rollover >> 1))
+ if ((count % rollover) < (rollover >> 1)) {
+ DAC_Set_Value(3000);
printf("1");
- else
+ }
+ else {
+ DAC_Set_Value(0);
printf("0");
+ }
}
void activity13_run() {
init_systick();
+ DAC_Init();
for(;;) {
- play_freq(1);
+ play_freq(3000);
}
}
diff --git a/project/Core/Src/Activties/activity4.c b/project/Core/Src/Activties/activity4.c
index 898cd2d..c2a0d63 100644
--- a/project/Core/Src/Activties/activity4.c
+++ b/project/Core/Src/Activties/activity4.c
@@ -12,13 +12,13 @@
#include "activity4.h"
void activity4_run() {
- header_t* p_header = get_header(get_song(0).p_song);
+ header_t p_header = get_header(get_song(0).p_song);
printf ("Header: \r\n");
- printf ("\tLength: %lu\r\n", p_header->length);
- printf ("\tFormat: %u\r\n", p_header->format);
- printf ("\tNum Tracks: %u\r\n", p_header->ntrcks);
- printf ("\tDivision: %u\r\n", p_header->division);
+ printf ("\tLength: %lu\r\n", p_header.length);
+ printf ("\tFormat: %u\r\n", p_header.format);
+ printf ("\tNum Tracks: %u\r\n", p_header.ntrcks);
+ printf ("\tDivision: %u\r\n", p_header.division);
}
header_t get_header(uint8_t *p_song) {
diff --git a/project/Core/Src/Project/player.c b/project/Core/Src/Project/player.c
index 0925483..f9ffbce 100644
--- a/project/Core/Src/Project/player.c
+++ b/project/Core/Src/Project/player.c
@@ -11,18 +11,12 @@
#include "hw8.h"
#include "activity4.h"
#include "song_info.h"
+#include "player.h"
#define NOTE_OFF_EVENT (0)
#define NOTE_ON_EVENT (1)
#define KEY_PRESSURE (2)
-typedef struct {
- uint8_t ev_type;
- uint32_t abs_time;
- uint8_t key_number;
- uint8_t value;
-} note_event_t;
-
void parse_song(uint8_t *p_song) {
header_t header;
header = get_header(p_song);
@@ -37,7 +31,7 @@ void parse_song(uint8_t *p_song) {
}
}
-uint8_t parse_track(uint8_t *p_song, note_event_t *events) {
+uint8_t *parse_track(uint8_t *p_song, note_event_t *events) {
p_song += 4; // skip MTrk
uint32_t MTrk_len = convert_to_uint32(p_song);
p_song += 4;
@@ -76,7 +70,7 @@ uint8_t parse_track(uint8_t *p_song, note_event_t *events) {
events[curEvent++] = note;
}
- events[curEvent] = 0; // null terminate array
+ events[curEvent] = NULL_EVENT; // null terminate array
return p_song;
}
diff --git a/project/Core/Src/Project/player_actions.c b/project/Core/Src/Project/player_actions.c
index 72b8801..01aff5e 100644
--- a/project/Core/Src/Project/player_actions.c
+++ b/project/Core/Src/Project/player_actions.c
@@ -51,7 +51,8 @@ void player_next() {
current_song = 0;
void *song = get_song(current_song).p_song;
- song_info_t song_info = get_song_info(song);
+ song_info_t song_info;
+ get_song_info(song, &song_info);
printf("Song #%i\r\n", current_song + 1);
if (song_info.title)
diff --git a/project/Core/Src/Project/song_info.c b/project/Core/Src/Project/song_info.c
index 2990da0..5be94e5 100644
--- a/project/Core/Src/Project/song_info.c
+++ b/project/Core/Src/Project/song_info.c
@@ -11,13 +11,12 @@
#include "song_info.h"
#include "endian_converters.h"
-uint8_t get_song_info(uint8_t *p_song, song_info_t *ret) {
+uint8_t *get_song_info(uint8_t *p_song, song_info_t *ret) {
ret->copyright = 0;
ret->tempo = 0;
ret->title = 0;
p_song += 4; // move past MTrk label
-
uint32_t MTrk_len = convert_to_uint32(p_song); // read in size of MTrk
p_song += sizeof(MTrk_len);
diff --git a/project/Core/Src/main.c b/project/Core/Src/main.c
index 29c8f5e..0863915 100644
--- a/project/Core/Src/main.c
+++ b/project/Core/Src/main.c
@@ -31,8 +31,8 @@ int main(void){
// activity10_run();
// hw6_run();
// activity12_run();
-// activity13_run();
+ activity13_run();
// hw8_run();
- parse_song(get_song(0).p_song + 109);
+// parse_song(get_song(0).p_song + 109);
}