From a4cb3c8594729224003e32fb1ea11307caa832d2 Mon Sep 17 00:00:00 2001 From: Alexsander Akers Date: Thu, 27 Jan 2022 11:23:27 -0500 Subject: Adjust function semantics by "flipping" bit order --- movement/movement.c | 2 +- watch-library/shared/watch/watch_rtc.h | 3 ++- watch-library/simulator/watch/watch_rtc.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/movement/movement.c b/movement/movement.c index 1c8e641c..aa95f2f1 100644 --- a/movement/movement.c +++ b/movement/movement.c @@ -155,7 +155,7 @@ void movement_request_tick_frequency(uint8_t freq) { if (freq == 128) return; // Movement uses the 128 Hz tick internally // disable all callbacks except the 128 Hz one - watch_rtc_disable_matching_periodic_callbacks(0b01111111); + watch_rtc_disable_matching_periodic_callbacks(0xFE); movement_state.subsecond = 0; movement_state.tick_frequency = freq; diff --git a/watch-library/shared/watch/watch_rtc.h b/watch-library/shared/watch/watch_rtc.h index b51d6c48..183e6dd0 100644 --- a/watch-library/shared/watch/watch_rtc.h +++ b/watch-library/shared/watch/watch_rtc.h @@ -138,7 +138,8 @@ void watch_rtc_register_periodic_callback(ext_irq_cb_t callback, uint8_t frequen void watch_rtc_disable_periodic_callback(uint8_t frequency); /** @brief Disables tick callbacks for the given periods (as a bitmask). - * @param mask The frequencies of tick callbacks you wish to disable, in Hz. To disable the 2 and 4 Hz callbacks, pass 0b00000110; + * @param mask The frequencies of tick callbacks you wish to disable, in Hz. + * The 128 Hz callback is 0b1, the 64 Hz callback is 0b10, the 32 Hz callback is 0b100, etc. */ void watch_rtc_disable_matching_periodic_callbacks(uint8_t mask); diff --git a/watch-library/simulator/watch/watch_rtc.c b/watch-library/simulator/watch/watch_rtc.c index 2cae701d..ea8659dc 100644 --- a/watch-library/simulator/watch/watch_rtc.c +++ b/watch-library/simulator/watch/watch_rtc.c @@ -115,7 +115,7 @@ void watch_rtc_disable_periodic_callback(uint8_t frequency) { void watch_rtc_disable_matching_periodic_callbacks(uint8_t mask) { for (int i = 0; i < 8; i++) { - if (tick_callbacks[i] != -1 && (mask & (1 << i)) != 0) { + if (tick_callbacks[i] != -1 && (mask & (1 << (7 - i))) != 0) { emscripten_clear_interval(tick_callbacks[i]); tick_callbacks[i] = -1; } -- cgit v1.2.3