From e8a18864eeae5597d8c82e1c715c24faf1f47b70 Mon Sep 17 00:00:00 2001 From: TheOnePerson Date: Mon, 23 Jan 2023 22:26:03 +0100 Subject: fix fast_tick_enabled behavior in movement (#183) --- movement/movement.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/movement/movement.c b/movement/movement.c index 6c5f93a0..e9ec612f 100644 --- a/movement/movement.c +++ b/movement/movement.c @@ -142,6 +142,7 @@ static inline void _movement_enable_fast_tick_if_needed(void) { if (!movement_state.fast_tick_enabled) { movement_state.fast_ticks = 0; watch_rtc_register_periodic_callback(cb_fast_tick, 128); + movement_state.fast_tick_enabled = true; } } @@ -605,7 +606,10 @@ void cb_fast_tick(void) { event.event_type = EVENT_ALARM_LONG_PRESS; // this is just a fail-safe; fast tick should be disabled as soon as the button is up, the LED times out, and/or the alarm finishes. // but if for whatever reason it isn't, this forces the fast tick off after 20 seconds. - if (movement_state.fast_ticks >= 128 * 20) watch_rtc_disable_periodic_callback(128); + if (movement_state.fast_ticks >= 128 * 20) { + watch_rtc_disable_periodic_callback(128); + movement_state.fast_tick_enabled = false; + } } void cb_tick(void) { -- cgit v1.2.3