From 59f59c5f9c929307ed42abafb30f7b7e2b4081f0 Mon Sep 17 00:00:00 2001 From: Michele Bini Date: Fri, 15 Apr 2022 23:40:22 +0200 Subject: Mirror changes for timer App 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 (p_context); - if(controller != nullptr) - controller->OnTimerEnd(); + void TimerEnd(TimerHandle_t xTimer) { + auto controller = static_cast(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 +#include #include #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; }; -- cgit v0.10.2