diff options
| author | Michele Bini <michele.bini@gmail.com> | 2022-04-15 21:40:22 (GMT) |
|---|---|---|
| committer | Michele Bini <michele.bini@gmail.com> | 2022-04-15 21:47:27 (GMT) |
| commit | 59f59c5f9c929307ed42abafb30f7b7e2b4081f0 (patch) | |
| tree | 7955fcbfca1bb48200782f8d697e66001d01d7cb | |
| parent | 83d1b6de1366d66de14cadfb398b9ba4891bfe56 (diff) | |
Mirror changes for timer App
| -rw-r--r-- | src/components/timer/TimerController.cpp | 22 | ||||
| -rw-r--r-- | src/components/timer/TimerController.h | 3 |
2 files changed, 13 insertions, 12 deletions
diff --git a/src/components/timer/TimerController.cpp b/src/components/timer/TimerController.cpp index 79e44d6..1988094 100644 --- a/src/components/timer/TimerController.cpp +++ b/src/components/timer/TimerController.cpp @@ -4,32 +4,30 @@ #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 = pdMS_TO_TICKS(duration); + xTimerChangePeriod(timerAppTimer, durationTicks, 0); + xTimerStart(timerAppTimer, 0); + endTicks = currentTicks + durationTicks; timerRunning = true; } @@ -51,7 +49,7 @@ uint32_t TimerController::GetTimeRemaining() { } void TimerController::StopTimer() { - app_timer_stop(timerAppTimer); + xTimerStop(timerAppTimer, 0); timerRunning = false; } diff --git a/src/components/timer/TimerController.h b/src/components/timer/TimerController.h index fa7bc90..e44d3d9 100644 --- a/src/components/timer/TimerController.h +++ b/src/components/timer/TimerController.h @@ -1,5 +1,7 @@ #pragma once +#include <FreeRTOS.h> +#include <timers.h> #include <cstdint> #include "app_timer.h" #include "portmacro_cmsis.h" @@ -30,6 +32,7 @@ namespace Pinetime { private: System::SystemTask* systemTask = nullptr; + TimerHandle_t timerAppTimer; TickType_t endTicks; bool timerRunning = false; }; |
