* Encapsulate common LCD code in a singleton
* Depend more UBL code on UBL_DEVEL_DEBUGGING
- Since most users don't need the debugging on at all times, this helps reduce the default build size for UBL by over 2K, a little closer to fitting on 128K boards.
- Remove `print_job_timer.stop()` from `disable_all_heaters`
- Call `print_job_timer.stop()` for relevant `disable_all_heaters()`.
- Split up `kill()` for watchdog interrupt safety
* Re-Print of same SD Memory Card file with single click
* Re-Print of same SD Memory Card file with single click
* This is the bugfix-v2.0.0 version of https://github.com/MarlinFirmware/Marlin/pull/8104
Because of the Re-ARM card's pinout there is only one SPI connected to
the RepRap Discount Full Graphic LCD display. The LCD responds to ANY
SCK transitions no matter if it's enable is inactive. The result is
garbage (usually bars) on the LCD display whenever there is SD card
activity.
This code minimizes this by only accessing the SD card when changing
directory levels if :
SDCARD_SORT_ALPHA is enabled
SDSORT_USES_RAM is true
SDSORT_CACHE_NAMES is true
The code changes result in file names being pulled from the ALPHA SORT
memory array rather than the SD card.
The code also gives the file count and file index functions their own
variables. When they shared a common variable the index function
sometimes resulted in the file count being short by 1.
=======================================================================
cardreader.cpp & pins_RAMPS_RE_ARM.h changes
Added another condition to cardreader.cpp to enable getting file names
only from RAM.
pins_RAMPS_RE_ARM.h :
Added comments about the SD card accesses and the LCD display
Combined all versions into this one.