always completely initialize display (#9981)

This commit is contained in:
Bob-the-Kuhn 2018-03-07 16:40:59 -06:00 committed by Scott Lahteine
parent 0149680f54
commit 04dedc7ed8

View File

@ -222,9 +222,11 @@ static void createChar_P(const char c, const byte * const ptr) {
lcd.createChar(c, temp); lcd.createChar(c, temp);
} }
#define CHARSET_MENU 0 enum HD44780CharSet : char {
#define CHARSET_INFO 1 CHARSET_MENU,
#define CHARSET_BOOT 2 CHARSET_INFO,
CHARSET_BOOT
};
static void lcd_set_custom_characters( static void lcd_set_custom_characters(
#if ENABLED(LCD_PROGRESS_BAR) || ENABLED(SHOW_BOOTSCREEN) #if ENABLED(LCD_PROGRESS_BAR) || ENABLED(SHOW_BOOTSCREEN)
@ -399,49 +401,38 @@ static void lcd_set_custom_characters(
#endif // SDSUPPORT #endif // SDSUPPORT
#if ENABLED(SHOW_BOOTSCREEN) || ENABLED(LCD_PROGRESS_BAR) #if ENABLED(SHOW_BOOTSCREEN)
static uint8_t char_mode = CHARSET_MENU; // Set boot screen corner characters
#define CHAR_COND (screen_charset != char_mode) if (screen_charset == CHARSET_BOOT) {
#else for (uint8_t i = 4; i--;)
#define CHAR_COND true createChar_P(i, corner[i]);
}
else
#endif #endif
{ // Info Screen uses 5 special characters
createChar_P(LCD_BEDTEMP_CHAR, bedTemp);
createChar_P(LCD_DEGREE_CHAR, degree);
createChar_P(LCD_STR_THERMOMETER[0], thermometer);
createChar_P(LCD_FEEDRATE_CHAR, feedrate);
createChar_P(LCD_CLOCK_CHAR, clock);
if (CHAR_COND) { #if ENABLED(LCD_PROGRESS_BAR)
#if ENABLED(SHOW_BOOTSCREEN) || ENABLED(LCD_PROGRESS_BAR) if (screen_charset == CHARSET_INFO) { // 3 Progress bar characters for info screen
char_mode = screen_charset; for (int16_t i = 3; i--;)
#if ENABLED(SHOW_BOOTSCREEN) createChar_P(LCD_STR_PROGRESS[i], progress[i]);
// Set boot screen corner characters
if (screen_charset == CHARSET_BOOT) {
for (uint8_t i = 4; i--;)
createChar_P(i, corner[i]);
} }
else else
#endif #endif
#endif {
{ // Info Screen uses 5 special characters createChar_P(LCD_UPLEVEL_CHAR, uplevel);
createChar_P(LCD_BEDTEMP_CHAR, bedTemp); #if ENABLED(SDSUPPORT)
createChar_P(LCD_DEGREE_CHAR, degree); // SD Card sub-menu special characters
createChar_P(LCD_STR_THERMOMETER[0], thermometer); createChar_P(LCD_STR_REFRESH[0], refresh);
createChar_P(LCD_FEEDRATE_CHAR, feedrate); createChar_P(LCD_STR_FOLDER[0], folder);
createChar_P(LCD_CLOCK_CHAR, clock);
#if ENABLED(LCD_PROGRESS_BAR)
if (screen_charset == CHARSET_INFO) { // 3 Progress bar characters for info screen
for (int16_t i = 3; i--;)
createChar_P(LCD_STR_PROGRESS[i], progress[i]);
}
else
#endif #endif
{
createChar_P(LCD_UPLEVEL_CHAR, uplevel);
#if ENABLED(SDSUPPORT)
// SD Card sub-menu special characters
createChar_P(LCD_STR_REFRESH[0], refresh);
createChar_P(LCD_STR_FOLDER[0], folder);
#endif
}
} }
} }
} }
static void lcd_implementation_init( static void lcd_implementation_init(