diff options
Diffstat (limited to 'src/components/timer/TimerController.cpp')
| -rw-r--r-- | src/components/timer/TimerController.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/components/timer/TimerController.cpp b/src/components/timer/TimerController.cpp index d6f8ffd..35e3512 100644 --- a/src/components/timer/TimerController.cpp +++ b/src/components/timer/TimerController.cpp @@ -4,30 +4,28 @@ #include "components/timer/TimerController.h" #include "systemtask/SystemTask.h" -#include "app_timer.h" #include "task.h" using namespace Pinetime::Controllers; -APP_TIMER_DEF(timerAppTimer); - namespace { - void TimerEnd(void* p_context) { - auto* controller = static_cast<Pinetime::Controllers::TimerController*>(p_context); - if (controller != nullptr) - controller->OnTimerEnd(); + void TimerEnd(TimerHandle_t xTimer) { + auto controller = static_cast<Pinetime::Controllers::TimerController*>(pvTimerGetTimerID(xTimer)); + controller->OnTimerEnd(); } } void TimerController::Init() { - app_timer_create(&timerAppTimer, APP_TIMER_MODE_SINGLE_SHOT, TimerEnd); + timerAppTimer = xTimerCreate("timerAppTm", 1, pdFALSE, this, TimerEnd); } void TimerController::StartTimer(uint32_t duration) { - app_timer_stop(timerAppTimer); + xTimerStop(timerAppTimer,0); auto currentTicks = xTaskGetTickCount(); - app_timer_start(timerAppTimer, APP_TIMER_TICKS(duration), this); - endTicks = currentTicks + APP_TIMER_TICKS(duration); + TickType_t durationTicks = APP_TIMER_TICKS(duration); + xTimerChangePeriod(timerAppTimer, durationTicks, 0); + xTimerStart(timerAppTimer, 0); + endTicks = currentTicks + durationTicks; timerRunning = true; overtime = false; } @@ -44,7 +42,7 @@ int32_t TimerController::GetSecondsRemaining() { } void TimerController::StopTimer() { - app_timer_stop(timerAppTimer); + xTimerStop(timerAppTimer, 0); timerRunning = false; overtime = false; } |
