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.
- `SD_DETECT_PIN` replaces `SDCARDDETECT`
- `SD_DETECT_INVERTED` replaces `SDCARDDETECTINVERTED`
- Revise the description of `SD_DETECT_INVERTED`
- Add a note about the override of `SD_DETECT_INVERTED` in
`Conditionals.h`
For the MORE_RAM option we need to buffer both the short and long
names, even though long names are sometimes redundant. Worst case, all
the names are max length. We can save some RAM by not storing these. We
could save more RAM by only storing the visible part of the long name.
# The first commit's message is:
SD Card Alpha Sorting
First iteration of alphabetical sorting for SD cards, both
slow+efficient and fast+rammy. Option for folders to sort first, last,
or not at all.
# This is the 2nd commit message:
Expand on More RAM concept, address minor bugs
# This is the 3rd commit message:
Improvements, more SORT_USES_MORE_RAM
With this option, always keeps the dir in RAM, doubling as a cache for
getfilename. A board with only 8K of SRAM is cutting it very close.
# This is the 4th commit message:
Completed SORT_USES_MORE_RAM implementation
For the MORE_RAM option we need to buffer both the short and long
names, even though long names are sometimes redundant. Worst case, all
the names are max length. We can save some RAM by not storing these. We
could save more RAM by only storing the visible part of the long name.
For the MORE_RAM option we need to buffer both the short and long
names, even though long names are sometimes redundant. Worst case, all
the names are max length. We can save some RAM by not storing these. We
could save more RAM by only storing the visible part of the long name.