Adjust displayapp delay to compensate time spent (#482)

This commit is contained in:
Riku Isokoski 2021-07-13 21:42:59 +03:00 committed by GitHub
parent af10747c94
commit a5616b0bc8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

View file

@ -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();

View file

@ -114,6 +114,7 @@ namespace Pinetime {
Apps nextApp = Apps::None;
DisplayApp::FullRefreshDirections nextDirection;
TickType_t lastWakeTime;
};
}
}