summaryrefslogtreecommitdiff
path: root/project/Core/Src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--project/Core/Src/Homework/hw8.c31
-rw-r--r--project/Core/Src/main.c5
2 files changed, 34 insertions, 2 deletions
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();
}