summaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-20 00:07:38 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-20 00:07:38 -0500
commitc514f8fe3c3b25aa610139fb79c58a236e8149de (patch)
tree525270ffcdf06768b387a2dd9d05131a2cda3c6e /project
parentcff905096851398315b22dca341e89ab657f12d8 (diff)
download340-repo-Sowgro-c514f8fe3c3b25aa610139fb79c58a236e8149de.tar.gz
340-repo-Sowgro-c514f8fe3c3b25aa610139fb79c58a236e8149de.tar.bz2
340-repo-Sowgro-c514f8fe3c3b25aa610139fb79c58a236e8149de.zip
complete hw 8
Diffstat (limited to 'project')
-rw-r--r--project/.settings/language.settings.xml4
-rw-r--r--project/Core/Inc/Homework/hw8.h20
-rw-r--r--project/Core/Src/Homework/hw8.c31
-rw-r--r--project/Core/Src/main.c5
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 &quot;${INPUTS}&quot;" 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 &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="-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">
<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();
}