|
|
|
@ -104,7 +104,7 @@
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT)
|
|
|
|
|
#if ENABLED(SDSUPPORT)
|
|
|
|
|
uint8_t lcd_sd_status;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@ -315,8 +315,10 @@ void MarlinUI::init() {
|
|
|
|
|
|
|
|
|
|
#endif // HAS_SHIFT_ENCODER
|
|
|
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT)
|
|
|
|
|
SET_INPUT_PULLUP(SD_DETECT_PIN);
|
|
|
|
|
#if ENABLED(SDSUPPORT)
|
|
|
|
|
#if PIN_EXISTS(SD_DETECT)
|
|
|
|
|
SET_INPUT_PULLUP(SD_DETECT_PIN);
|
|
|
|
|
#endif
|
|
|
|
|
lcd_sd_status = 2; // UNKNOWN
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@ -766,7 +768,7 @@ void MarlinUI::update() {
|
|
|
|
|
|
|
|
|
|
#endif // HAS_LCD_MENU
|
|
|
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT)
|
|
|
|
|
#if ENABLED(SDSUPPORT)
|
|
|
|
|
|
|
|
|
|
const uint8_t sd_status = (uint8_t)IS_SD_INSERTED();
|
|
|
|
|
if (sd_status != lcd_sd_status && detected()) {
|
|
|
|
@ -782,16 +784,20 @@ void MarlinUI::update() {
|
|
|
|
|
else
|
|
|
|
|
set_status_P(PSTR(MSG_SD_INSERTED));
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
card.release();
|
|
|
|
|
if (old_sd_status != 2) {
|
|
|
|
|
set_status_P(PSTR(MSG_SD_REMOVED));
|
|
|
|
|
if (!on_status_screen()) return_to_status();
|
|
|
|
|
#if PIN_EXISTS(SD_DETECT)
|
|
|
|
|
else {
|
|
|
|
|
card.release();
|
|
|
|
|
if (old_sd_status != 2) {
|
|
|
|
|
set_status_P(PSTR(MSG_SD_REMOVED));
|
|
|
|
|
if (!on_status_screen()) return_to_status();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
init_lcd(); // May revive the LCD if static electricity killed it
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
refresh();
|
|
|
|
|
init_lcd(); // May revive the LCD if static electricity killed it
|
|
|
|
|
|
|
|
|
|
ms = millis();
|
|
|
|
|
next_lcd_update_ms = ms + LCD_UPDATE_INTERVAL; // delay LCD update until after SD activity completes
|
|
|
|
@ -801,7 +807,7 @@ void MarlinUI::update() {
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif // SDSUPPORT && SD_DETECT_PIN
|
|
|
|
|
#endif // SDSUPPORT
|
|
|
|
|
|
|
|
|
|
if (ELAPSED(ms, next_lcd_update_ms)
|
|
|
|
|
#if HAS_GRAPHICAL_LCD
|
|
|
|
|