Browse Source

always completely initialize display (#9981)

Bob-the-Kuhn 7 years ago
parent
commit
04dedc7ed8
1 changed files with 31 additions and 40 deletions
  1. 31
    40
      Marlin/src/lcd/ultralcd_impl_HD44780.h

+ 31
- 40
Marlin/src/lcd/ultralcd_impl_HD44780.h View File

@@ -222,9 +222,11 @@ static void createChar_P(const char c, const byte * const ptr) {
222 222
   lcd.createChar(c, temp);
223 223
 }
224 224
 
225
-#define CHARSET_MENU 0
226
-#define CHARSET_INFO 1
227
-#define CHARSET_BOOT 2
225
+enum HD44780CharSet : char {
226
+  CHARSET_MENU,
227
+  CHARSET_INFO,
228
+  CHARSET_BOOT
229
+};
228 230
 
229 231
 static void lcd_set_custom_characters(
230 232
   #if ENABLED(LCD_PROGRESS_BAR) || ENABLED(SHOW_BOOTSCREEN)
@@ -399,49 +401,38 @@ static void lcd_set_custom_characters(
399 401
 
400 402
   #endif // SDSUPPORT
401 403
 
402
-  #if ENABLED(SHOW_BOOTSCREEN) || ENABLED(LCD_PROGRESS_BAR)
403
-    static uint8_t char_mode = CHARSET_MENU;
404
-    #define CHAR_COND (screen_charset != char_mode)
405
-  #else
406
-    #define CHAR_COND true
404
+  #if ENABLED(SHOW_BOOTSCREEN)
405
+    // Set boot screen corner characters
406
+    if (screen_charset == CHARSET_BOOT) {
407
+      for (uint8_t i = 4; i--;)
408
+        createChar_P(i, corner[i]);
409
+    }
410
+    else
407 411
   #endif
408
-
409
-  if (CHAR_COND) {
410
-    #if ENABLED(SHOW_BOOTSCREEN) || ENABLED(LCD_PROGRESS_BAR)
411
-      char_mode = screen_charset;
412
-      #if ENABLED(SHOW_BOOTSCREEN)
413
-        // Set boot screen corner characters
414
-        if (screen_charset == CHARSET_BOOT) {
415
-          for (uint8_t i = 4; i--;)
416
-            createChar_P(i, corner[i]);
412
+    { // Info Screen uses 5 special characters
413
+      createChar_P(LCD_BEDTEMP_CHAR, bedTemp);
414
+      createChar_P(LCD_DEGREE_CHAR, degree);
415
+      createChar_P(LCD_STR_THERMOMETER[0], thermometer);
416
+      createChar_P(LCD_FEEDRATE_CHAR, feedrate);
417
+      createChar_P(LCD_CLOCK_CHAR, clock);
418
+
419
+      #if ENABLED(LCD_PROGRESS_BAR)
420
+        if (screen_charset == CHARSET_INFO) { // 3 Progress bar characters for info screen
421
+          for (int16_t i = 3; i--;)
422
+            createChar_P(LCD_STR_PROGRESS[i], progress[i]);
417 423
         }
418 424
         else
419 425
       #endif
420
-    #endif
421
-        { // Info Screen uses 5 special characters
422
-          createChar_P(LCD_BEDTEMP_CHAR, bedTemp);
423
-          createChar_P(LCD_DEGREE_CHAR, degree);
424
-          createChar_P(LCD_STR_THERMOMETER[0], thermometer);
425
-          createChar_P(LCD_FEEDRATE_CHAR, feedrate);
426
-          createChar_P(LCD_CLOCK_CHAR, clock);
427
-
428
-          #if ENABLED(LCD_PROGRESS_BAR)
429
-            if (screen_charset == CHARSET_INFO) { // 3 Progress bar characters for info screen
430
-              for (int16_t i = 3; i--;)
431
-                createChar_P(LCD_STR_PROGRESS[i], progress[i]);
432
-            }
433
-            else
426
+        {
427
+          createChar_P(LCD_UPLEVEL_CHAR, uplevel);
428
+          #if ENABLED(SDSUPPORT)
429
+            // SD Card sub-menu special characters
430
+            createChar_P(LCD_STR_REFRESH[0], refresh);
431
+            createChar_P(LCD_STR_FOLDER[0], folder);
434 432
           #endif
435
-            {
436
-              createChar_P(LCD_UPLEVEL_CHAR, uplevel);
437
-              #if ENABLED(SDSUPPORT)
438
-                // SD Card sub-menu special characters
439
-                createChar_P(LCD_STR_REFRESH[0], refresh);
440
-                createChar_P(LCD_STR_FOLDER[0], folder);
441
-              #endif
442
-            }
443 433
         }
444
-  }
434
+    }
435
+
445 436
 }
446 437
 
447 438
 static void lcd_implementation_init(

Loading…
Cancel
Save