diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-20 00:07:38 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-20 00:07:38 -0500 |
| commit | c514f8fe3c3b25aa610139fb79c58a236e8149de (patch) | |
| tree | 525270ffcdf06768b387a2dd9d05131a2cda3c6e | |
| parent | cff905096851398315b22dca341e89ab657f12d8 (diff) | |
| download | 340-repo-Sowgro-c514f8fe3c3b25aa610139fb79c58a236e8149de.tar.gz 340-repo-Sowgro-c514f8fe3c3b25aa610139fb79c58a236e8149de.tar.bz2 340-repo-Sowgro-c514f8fe3c3b25aa610139fb79c58a236e8149de.zip | |
complete hw 8
| -rw-r--r-- | project/.settings/language.settings.xml | 4 | ||||
| -rw-r--r-- | project/Core/Inc/Homework/hw8.h | 20 | ||||
| -rw-r--r-- | project/Core/Src/Homework/hw8.c | 31 | ||||
| -rw-r--r-- | project/Core/Src/main.c | 5 |
4 files changed, 56 insertions, 4 deletions
diff --git a/project/.settings/language.settings.xml b/project/.settings/language.settings.xml index ae082b2..ec1bb84 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="-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 "${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="-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 "${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/Homework/hw8.h b/project/Core/Inc/Homework/hw8.h new file mode 100644 index 0000000..7f8cf29 --- /dev/null +++ b/project/Core/Inc/Homework/hw8.h @@ -0,0 +1,20 @@ +/* + * hw8.h + * + * Created on: Nov 20, 2025 + * Author: sowgro + */ + +#ifndef INC_HOMEWORK_HW8_H_ +#define INC_HOMEWORK_HW8_H_ + +typedef struct { + uint32_t value; + uint8_t bytes_used; +} parseDelay_result_t; + +void hw8_run(); + +parseDelay_result_t parseDelay(uint8_t* delay); + +#endif /* INC_HOMEWORK_HW8_H_ */ diff --git a/project/Core/Src/Homework/hw8.c b/project/Core/Src/Homework/hw8.c new file mode 100644 index 0000000..e684c07 --- /dev/null +++ b/project/Core/Src/Homework/hw8.c @@ -0,0 +1,31 @@ +/* + * hw8.c + * + * Created on: Nov 19, 2025 + * Author: sowgro + */ + +#include <stdint.h> +#include <stdio.h> +#include "hw8.h" + +void hw8_run() { + uint8_t data[] = {0x90, 0x82, 0x93, 0x64, 0xD3, 0x89}; + parseDelay_result_t d = parseDelay(data); + printf("delay: %lu bytes: %i\r\n", d.value, d.bytes_used); +} + +parseDelay_result_t parseDelay(uint8_t* delay) { + uint32_t ret = 0; + uint8_t* cur = delay; + + for (;;) { + uint8_t value = *cur & ~(1 << 7); + ret = (ret << 7) | value; + if (~*cur & (1 << 7)) { + break; + } + cur++; + } + return (parseDelay_result_t) {ret, cur - delay + 1}; +} diff --git a/project/Core/Src/main.c b/project/Core/Src/main.c index 60d5b3d..b78da42 100644 --- a/project/Core/Src/main.c +++ b/project/Core/Src/main.c @@ -12,7 +12,7 @@ #include <stdio.h> #include "hw4.h" #include "project.h" -#include "hw6.h" +#include "hw8.h" #include "activity12.h" int main(void){ @@ -30,6 +30,7 @@ int main(void){ // activity10_run(); // hw6_run(); // activity12_run(); - activity13_run(); +// activity13_run(); + hw8_run(); } |
