unsigned char fb[512];
uint32_t last_disp_update = 0;
int disp_update_interval = 1000/disp_target_fps;
+
+#define SCREENSAVER_TIME 500 // ms
uint32_t last_screensaver = 0;
uint32_t screensaver_interval = 600000;
+bool screensaver_enabled = false;
+
uint32_t last_page_flip = 0;
uint32_t last_interface_page_flip = 0;
int page_interval = 4000;
update_stat_area();
update_disp_area();
display.display();
- if (millis()-last_screensaver >= screensaver_interval) {
+ // Invert display to protect against OLED screen burn in
+ if (millis()-last_screensaver >= screensaver_interval+SCREENSAVER_TIME && screensaver_enabled) {
+ display.invertDisplay(0);
+ last_screensaver = millis();
+ screensaver_enabled = false;
+ }
+ else if (millis()-last_screensaver >= screensaver_interval) {
display.invertDisplay(1);
- delay(500);
- display.invertDisplay(0);
- last_screensaver = millis();
+ screensaver_enabled = true;
}
#elif DISP_H == 122 && (DISPLAY == EINK_BW || DISPLAY == EINK_3C)
display.setFullWindow();