From 5c2d4a515112f8ba6a23f34d59c8a481368a1e79 Mon Sep 17 00:00:00 2001 From: codingjourney Date: Mon, 18 Nov 2024 18:26:52 +0100 Subject: fixed an integer overflow bug in time rendering --- src/displayapp/screens/StopWatch.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/displayapp/screens') diff --git a/src/displayapp/screens/StopWatch.cpp b/src/displayapp/screens/StopWatch.cpp index 25b0ad77..710c4d44 100644 --- a/src/displayapp/screens/StopWatch.cpp +++ b/src/displayapp/screens/StopWatch.cpp @@ -8,13 +8,13 @@ using namespace Pinetime::Controllers; namespace { TimeSeparated ConvertTicksToTimeSegments(const TickType_t timeElapsed) { - // Centiseconds - const int timeElapsedCentis = timeElapsed * 100 / configTICK_RATE_HZ; + const int timeElapsedSecs = timeElapsed / configTICK_RATE_HZ; + const int timeElapsedFraction = timeElapsed % configTICK_RATE_HZ; - const int hundredths = (timeElapsedCentis % 100); - const int secs = (timeElapsedCentis / 100) % 60; - const int mins = ((timeElapsedCentis / 100) / 60) % 60; - const int hours = ((timeElapsedCentis / 100) / 60) / 60; + const int hundredths = timeElapsedFraction * 100 / configTICK_RATE_HZ; + const int secs = (timeElapsedSecs) % 60; + const int mins = (timeElapsedSecs / 60) % 60; + const int hours = (timeElapsedSecs / 60) / 60; return TimeSeparated {hours, mins, secs, hundredths}; } -- cgit v1.2.3-70-g09d2