summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/displayapp/DisplayApp.cpp11
-rw-r--r--src/displayapp/DisplayApp.h1
2 files changed, 10 insertions, 2 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index 04ebd2d3..6d66afe5 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 73a7cc36..f4573ab7 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;
};
}
}