blob: e684c0769265fd846301eea0155257ca73941c3c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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};
}
|