diff options
| author | Riku Isokoski <riksu9000@gmail.com> | 2023-04-11 12:18:49 +0300 |
|---|---|---|
| committer | Riku Isokoski <riksu9000@gmail.com> | 2023-04-16 14:33:23 +0000 |
| commit | 40f7e1c7be6882e01058b5ccf64d5005c6105346 (patch) | |
| tree | 7117de9dc371404da75efd10813d724b5e0205a3 /src/components/timer/Timer.cpp | |
| parent | 661ffbeb1eea68ec0cd63b4db537515f1d1772c8 (diff) | |
TimerController: Rename to Timer
Diffstat (limited to 'src/components/timer/Timer.cpp')
| -rw-r--r-- | src/components/timer/Timer.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/components/timer/Timer.cpp b/src/components/timer/Timer.cpp new file mode 100644 index 00000000..279178cd --- /dev/null +++ b/src/components/timer/Timer.cpp @@ -0,0 +1,28 @@ +#include "components/timer/Timer.h" + +using namespace Pinetime::Controllers; + +Timer::Timer(void* const timerData, TimerCallbackFunction_t timerCallbackFunction) { + timer = xTimerCreate("Timer", 1, pdFALSE, timerData, timerCallbackFunction); +} + +void Timer::StartTimer(std::chrono::milliseconds duration) { + xTimerChangePeriod(timer, pdMS_TO_TICKS(duration.count()), 0); + xTimerStart(timer, 0); +} + +std::chrono::milliseconds Timer::GetTimeRemaining() { + if (IsRunning()) { + TickType_t remainingTime = xTimerGetExpiryTime(timer) - xTaskGetTickCount(); + return std::chrono::milliseconds(remainingTime * 1000 / configTICK_RATE_HZ); + } + return std::chrono::milliseconds(0); +} + +void Timer::StopTimer() { + xTimerStop(timer, 0); +} + +bool Timer::IsRunning() { + return (xTimerIsTimerActive(timer) == pdTRUE); +} |
