From 0bfa2770d5f0c6d9a5531a5e2b863ab43569cb33 Mon Sep 17 00:00:00 2001 From: codingjourney Date: Mon, 20 Jan 2025 22:31:50 +0100 Subject: fixed irregular pause mode blinking at clock wraparound --- src/displayapp/screens/StopWatch.cpp | 6 +++--- src/displayapp/screens/StopWatch.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/displayapp/screens/StopWatch.cpp b/src/displayapp/screens/StopWatch.cpp index 7c3de239..8d029019 100644 --- a/src/displayapp/screens/StopWatch.cpp +++ b/src/displayapp/screens/StopWatch.cpp @@ -159,8 +159,8 @@ void StopWatch::RenderTime() { void StopWatch::RenderPause() { const TickType_t currentTime = xTaskGetTickCount(); - if (currentTime > blinkTime) { - blinkTime = currentTime + blinkInterval; + if (currentTime - lastBlinkTime > blinkInterval) { + lastBlinkTime = currentTime; if (lv_obj_get_state(time, LV_LABEL_PART_MAIN) == LV_STATE_DEFAULT) { lv_obj_set_state(time, LV_STATE_DISABLED); lv_obj_set_state(msecTime, LV_STATE_DISABLED); @@ -253,7 +253,7 @@ bool StopWatch::OnButtonPushed() { void StopWatch::OnPause() { stopWatchController.Pause(); - blinkTime = xTaskGetTickCount() + blinkInterval; + lastBlinkTime = xTaskGetTickCount(); RenderTime(); // make sure displayed time is not stale DisplayPaused(); wakeLock.Release(); diff --git a/src/displayapp/screens/StopWatch.h b/src/displayapp/screens/StopWatch.h index 98c05bc4..595c71da 100644 --- a/src/displayapp/screens/StopWatch.h +++ b/src/displayapp/screens/StopWatch.h @@ -45,7 +45,7 @@ namespace Pinetime::Applications { Pinetime::System::WakeLock wakeLock; Controllers::StopWatchController& stopWatchController; - TickType_t blinkTime = 0; + TickType_t lastBlinkTime = 0; uint8_t displayedLaps = 3; lv_obj_t *time, *msecTime, *btnPlayPause, *btnStopLap, *txtPlayPause, *txtStopLap; lv_obj_t* lapText; -- cgit v1.2.3-70-g09d2