1
0
forked from me/IronOS

Delay I2C DMA thread on oled slightly

The flickering on the LCD screen was caused by the OLED DMA taking slightly longer than the delays, so the tail end would flicker if the buffer was cleared before it finished writing.

In future may want to double buffer the LCD.

Fixes #290
This commit is contained in:
Ben V. Brown
2018-05-11 12:54:55 +10:00
parent 8bf65351ea
commit b6b207568c
3 changed files with 17 additions and 12 deletions

View File

@@ -279,7 +279,7 @@ static int userConfirmation(const char* message) {
if (lcdRefresh) {
lcd.refresh();
osDelay(20);
osDelay(40);
lcdRefresh = false;
}
}
@@ -635,7 +635,7 @@ static void settings_setCalibrateVIN(void) {
}
lcd.refresh();
osDelay(50);
osDelay(40);
// Cap to sensible values
if (systemSettings.voltageDiv < 90) {
@@ -807,7 +807,7 @@ void gui_Menu(const menuitem* menu) {
if (lcdRefresh) {
lcd.refresh(); // update the LCD
osDelay(20);
osDelay(40);
lcdRefresh = false;
}
}