diff options
Diffstat (limited to 'project')
| -rw-r--r-- | project/.settings/language.settings.xml | 4 | ||||
| -rw-r--r-- | project/Core/Inc/Activities/midi_header.h | 13 | ||||
| -rw-r--r-- | project/Core/Inc/Homework/endian_converters.h | 14 | ||||
| -rw-r--r-- | project/Core/Src/Activties/activity4.c | 26 | ||||
| -rw-r--r-- | project/Core/Src/Activties/midi_header.c | 37 | ||||
| -rw-r--r-- | project/Core/Src/Homework/endian_converters.c | 16 | ||||
| -rw-r--r-- | project/Core/Src/main.c | 1 |
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 "${INPUTS}"" 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 "${INPUTS}"" 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 "${INPUTS}"" 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 "${INPUTS}"" 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> |
