From: jacob.eva Date: Fri, 30 Aug 2024 17:21:16 +0000 (+0100) Subject: Merge branch 'master' of github.com:liberatedsystems/RNode_Firmware_CE X-Git-Url: https://git.tnoah.ca/?a=commitdiff_plain;h=139cf7e3bfaf9e5bb1e4d3bc8ddc7b184826bc09;p=lora-radio.git Merge branch 'master' of github.com:liberatedsystems/RNode_Firmware_CE --- 139cf7e3bfaf9e5bb1e4d3bc8ddc7b184826bc09 diff --cc Display.h index 2166c91,2aec8df..ac830a5 --- a/Display.h +++ b/Display.h @@@ -106,10 -106,6 +106,10 @@@ void busyCallback(const void* p) #if DISPLAY == OLED Adafruit_SSD1306 display(DISP_W, DISP_H, &Wire, DISP_RST); float disp_target_fps = 7; +#define SCREENSAVER_TIME 500 // ms +uint32_t last_screensaver = 0; - uint32_t screensaver_interval = 600000; // 10 minutes in ms ++#define SCREENSAVER_INTERVAL 600000 // 10 minutes in ms +bool screensaver_enabled = false; #endif #endif #if BOARD_MODEL == BOARD_RAK4631 @@@ -1120,17 -1117,13 +1120,17 @@@ void update_display(bool blank = false 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; }