/* * hw8.c * * Created on: Nov 19, 2025 * Author: sowgro */ #include #include #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}; }