diff options
| author | Riku Isokoski <riksu9000@gmail.com> | 2021-07-13 18:42:59 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-13 18:42:59 (GMT) |
| commit | a5616b0bc8ea385c3c70ae700498c8abe07f647b (patch) | |
| tree | 62e24b2f60e327ee2c87fbbd77157cc3c6e38a12 /src/displayapp | |
| parent | af10747c94080123a5847d5258c2cfeb7ec317cb (diff) | |
Adjust displayapp delay to compensate time spent (#482)
Diffstat (limited to 'src/displayapp')
| -rw-r--r-- | src/displayapp/DisplayApp.cpp | 11 | ||||
| -rw-r--r-- | src/displayapp/DisplayApp.h | 1 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 04ebd2d..6d66afe 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -114,6 +114,7 @@ uint32_t count = 0; bool toggle = true; void DisplayApp::Refresh() { TickType_t queueTimeout; + TickType_t delta; switch (state) { case States::Idle: IdleState(); @@ -121,7 +122,11 @@ void DisplayApp::Refresh() { break; case States::Running: RunningState(); - queueTimeout = 20; + delta = xTaskGetTickCount() - lastWakeTime; + if (delta > 20) { + delta = 20; + } + queueTimeout = 20 - delta; break; default: queueTimeout = portMAX_DELAY; @@ -129,7 +134,9 @@ void DisplayApp::Refresh() { } Messages msg; - if (xQueueReceive(msgQueue, &msg, queueTimeout)) { + bool messageReceived = xQueueReceive(msgQueue, &msg, queueTimeout); + lastWakeTime = xTaskGetTickCount(); + if (messageReceived) { switch (msg) { case Messages::GoToSleep: brightnessController.Backup(); diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index 73a7cc3..f4573ab 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -114,6 +114,7 @@ namespace Pinetime { Apps nextApp = Apps::None; DisplayApp::FullRefreshDirections nextDirection; + TickType_t lastWakeTime; }; } } |
