summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--project/.settings/language.settings.xml4
-rw-r--r--project/Core/Inc/Activities/midi_header.h13
-rw-r--r--project/Core/Inc/Homework/endian_converters.h14
-rw-r--r--project/Core/Src/Activties/activity4.c26
-rw-r--r--project/Core/Src/Activties/midi_header.c37
-rw-r--r--project/Core/Src/Homework/endian_converters.c16
-rw-r--r--project/Core/Src/main.c1
7 files changed, 83 insertions, 28 deletions
diff --git a/project/.settings/language.settings.xml b/project/.settings/language.settings.xml
index ae082b2..974b8a7 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="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">
+ <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-905336628230113484" 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="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">
+ <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-905336628230113484" 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/midi_header.h b/project/Core/Inc/Activities/midi_header.h
new file mode 100644
index 0000000..62904a3
--- /dev/null
+++ b/project/Core/Inc/Activities/midi_header.h
@@ -0,0 +1,13 @@
+/*
+ * midi_header.h
+ *
+ * Created on: Sep 22, 2025
+ * Author: sowgro
+ */
+
+#ifndef INC_ACTIVITIES_MIDI_HEADER_H_
+#define INC_ACTIVITIES_MIDI_HEADER_H_
+
+void run();
+
+#endif /* INC_ACTIVITIES_MIDI_HEADER_H_ */
diff --git a/project/Core/Inc/Homework/endian_converters.h b/project/Core/Inc/Homework/endian_converters.h
new file mode 100644
index 0000000..27603ea
--- /dev/null
+++ b/project/Core/Inc/Homework/endian_converters.h
@@ -0,0 +1,14 @@
+/*
+ * endian_converters.h
+ *
+ * Created on: Sep 22, 2025
+ * Author: sowgro
+ */
+
+#ifndef INC_HOMEWORK_ENDIAN_CONVERTERS_H_
+#define INC_HOMEWORK_ENDIAN_CONVERTERS_H_
+
+uint16_t convert_to_uint16 (uint8_t* p_value);
+uint32_t convert_to_uint32 (uint8_t* p_value);
+
+#endif /* INC_HOMEWORK_ENDIAN_CONVERTERS_H_ */
diff --git a/project/Core/Src/Activties/activity4.c b/project/Core/Src/Activties/activity4.c
deleted file mode 100644
index c6b9b22..0000000
--- a/project/Core/Src/Activties/activity4.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * activity4.c
- *
- * Created on: Sep 16, 2025
- * Author: sowgro
- */
-
-#include "song.h"
-#include <printf.h>
-
-typedef struct {
- char chunk_type[4];
- unsigned int length;
- unsigned short format;
- unsigned short ntrcks;
- unsigned short division;
-} header;
-
-void run() {
- header* p_header;
-
- p_header = (header *) (get_song(0).p_song);
-
- printf("type: %s, length: %u, format: %u, trackCount: %u, division: %u\r\n", p_header->chunk_type, p_header->length, p_header->format, p_header->ntrcks, p_header->division);
-}
-
diff --git a/project/Core/Src/Activties/midi_header.c b/project/Core/Src/Activties/midi_header.c
new file mode 100644
index 0000000..de3dc68
--- /dev/null
+++ b/project/Core/Src/Activties/midi_header.c
@@ -0,0 +1,37 @@
+/*
+ * activity4.c
+ *
+ * Created on: Sep 16, 2025
+ * Author: sowgro
+ */
+
+#include "song.h"
+#include <printf.h>
+#include <endian_converters.h>
+#include <stdint.h>
+
+typedef struct {
+ char chunk_type[4];
+ uint32_t length;
+ uint16_t format;
+ uint16_t ntrcks;
+ uint16_t division;
+} header;
+
+void run() {
+ header* p_header;
+
+ p_header = (header *) (get_song(0).p_song);
+
+ p_header->length = convert_to_uint32((uint8_t*) &p_header->length);
+ p_header->format = convert_to_uint16((uint8_t*) &p_header->format);
+ p_header->ntrcks = convert_to_uint16((uint8_t*) &p_header->ntrcks);
+ p_header->division = convert_to_uint16((uint8_t*) &p_header->division);
+
+ 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);
+}
+
diff --git a/project/Core/Src/Homework/endian_converters.c b/project/Core/Src/Homework/endian_converters.c
new file mode 100644
index 0000000..1dbb5f7
--- /dev/null
+++ b/project/Core/Src/Homework/endian_converters.c
@@ -0,0 +1,16 @@
+/*
+ * endian_converters.c
+ *
+ * Created on: Sep 22, 2025
+ * Author: sowgro
+ */
+
+#include <stdint.h>
+
+uint16_t convert_to_uint16 (uint8_t* p_value) {
+ return (p_value[0] << 8) + p_value[1];
+}
+
+uint32_t convert_to_uint32 (uint8_t* p_value) {
+ return (p_value[0] << 24) + (p_value[1] << 16) + (p_value[2] << 8) + p_value[3];
+}
diff --git a/project/Core/Src/main.c b/project/Core/Src/main.c
index 247ed1c..8d76d3a 100644
--- a/project/Core/Src/main.c
+++ b/project/Core/Src/main.c
@@ -8,6 +8,7 @@
#include "LED.h"
#include "UART.h"
#include "demo.h"
+#include "midi_header.h"
#include <stdio.h>