#if DISPLAY == OLED
Adafruit_SSD1306 display(DISP_W, DISP_H, &Wire, DISP_RST);
float disp_target_fps = 7;
- uint32_t screensaver_interval = 600000; // 10 minutes in ms
+#define SCREENSAVER_TIME 500 // ms
+uint32_t last_screensaver = 0;
++#define SCREENSAVER_INTERVAL 600000 // 10 minutes in ms
+bool screensaver_enabled = false;
#endif
#endif
#if BOARD_MODEL == BOARD_RAK4631
update_stat_area();
update_disp_area();
display.display();
+
+ uint32_t current = millis();
// 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;
+ if (screensaver_enabled) {
- if (current-last_screensaver >= screensaver_interval+SCREENSAVER_TIME) {
++ if (current-last_screensaver >= SCREENSAVER_INTERVAL+SCREENSAVER_TIME) {
+ display.invertDisplay(0);
+ last_screensaver = current;
+ screensaver_enabled = false;
+ }
}
- else if (current-last_screensaver >= screensaver_interval) {
- else if (millis()-last_screensaver >= SCREENSAVER_INTERVAL) {
++ else if (current-last_screensaver >= SCREENSAVER_INTERVAL) {
display.invertDisplay(1);
screensaver_enabled = true;
}