1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 17:25:20 +03:00

currentTime passed in scheduler task call

This commit is contained in:
Martin Budden 2016-07-06 17:09:04 +01:00
parent 7122689038
commit 2f9ca4355c
21 changed files with 134 additions and 125 deletions

View file

@ -582,17 +582,16 @@ void showDebugPage(void)
}
#endif
void updateDisplay(void)
void updateDisplay(uint32_t currentTime)
{
uint32_t now = micros();
static uint8_t previousArmedState = 0;
bool updateNow = (int32_t)(now - nextDisplayUpdateAt) >= 0L;
const bool updateNow = (int32_t)(currentTime - nextDisplayUpdateAt) >= 0L;
if (!updateNow) {
return;
}
nextDisplayUpdateAt = now + DISPLAY_UPDATE_FREQUENCY;
nextDisplayUpdateAt = currentTime + DISPLAY_UPDATE_FREQUENCY;
bool armedState = ARMING_FLAG(ARMED) ? true : false;
bool armedStateChanged = armedState != previousArmedState;
@ -612,7 +611,7 @@ void updateDisplay(void)
}
pageState.pageChanging = (pageState.pageFlags & PAGE_STATE_FLAG_FORCE_PAGE_CHANGE) ||
(((int32_t)(now - pageState.nextPageAt) >= 0L && (pageState.pageFlags & PAGE_STATE_FLAG_CYCLE_ENABLED)));
(((int32_t)(currentTime - pageState.nextPageAt) >= 0L && (pageState.pageFlags & PAGE_STATE_FLAG_CYCLE_ENABLED)));
if (pageState.pageChanging && (pageState.pageFlags & PAGE_STATE_FLAG_CYCLE_ENABLED)) {
pageState.cycleIndex++;
pageState.cycleIndex = pageState.cycleIndex % CYCLE_PAGE_ID_COUNT;
@ -622,7 +621,7 @@ void updateDisplay(void)
if (pageState.pageChanging) {
pageState.pageFlags &= ~PAGE_STATE_FLAG_FORCE_PAGE_CHANGE;
pageState.nextPageAt = now + PAGE_CYCLE_FREQUENCY;
pageState.nextPageAt = currentTime + PAGE_CYCLE_FREQUENCY;
// Some OLED displays do not respond on the first initialisation so refresh the display
// when the page changes in the hopes the hardware responds. This also allows the
@ -703,7 +702,7 @@ void displayInit(rxConfig_t *rxConfigToUse)
memset(&pageState, 0, sizeof(pageState));
displaySetPage(PAGE_WELCOME);
updateDisplay();
updateDisplay(micros());
displaySetNextPageChangeAt(micros() + (1000 * 1000 * 5));
}