diff --git a/app/app.c b/app/app.c index e51e184..9a37ce5 100644 --- a/app/app.c +++ b/app/app.c @@ -1423,7 +1423,7 @@ void APP_process_flash_light_10ms(void) break; case FLASHLIGHT_ON: - GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); break; case FLASHLIGHT_BLINK: @@ -1432,9 +1432,12 @@ void APP_process_flash_light_10ms(void) break; case FLASHLIGHT_SOS: - { - const unsigned int bit = (g_flash_light_blink_tick_10ms / 15) % (32 + 6); // 150ms tick - if (bit < 32 && (sos & (1u << (31 - bit)))) + { // 150ms tick + // '15' sets the morse speed, lower value = faster speed + // '+ 6' lengthens the loop time + const unsigned int num_bits = sizeof(sos) * 8; + const unsigned int bit = (g_flash_light_blink_tick_10ms / 15) % (num_bits + 6); + if (bit < num_bits && (sos & (1u << ((num_bits - 1) - bit)))) GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); // ON else GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); // OFF diff --git a/firmware.bin b/firmware.bin index 762a0d2..0be9d9a 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index cc0e656..ecca704 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ