Optimise autostart_stilltocheck variable
Make the variable static within the checkautostart function. When the function is called for the first time autostart_stilltocheck is set to true and will continue to live after the function is exited. After it is set to false within checkautostart() it will continue to be false forever. Using static this way is more efficient than using a global variable Saves 6 bytes of flash and 1 byte of SRAM
This commit is contained in:
parent
9bb8797b60
commit
15b41e7348
@ -30,7 +30,6 @@ CardReader::CardReader()
|
|||||||
memset(workDirParents, 0, sizeof(workDirParents));
|
memset(workDirParents, 0, sizeof(workDirParents));
|
||||||
presort_flag = false;
|
presort_flag = false;
|
||||||
|
|
||||||
autostart_stilltocheck=true; //the SD start is delayed, because otherwise the serial cannot answer fast enough to make contact with the host software.
|
|
||||||
lastnr=0;
|
lastnr=0;
|
||||||
//power to SD reader
|
//power to SD reader
|
||||||
#if SDPOWER > -1
|
#if SDPOWER > -1
|
||||||
@ -614,6 +613,9 @@ void CardReader::write_command_no_newline(char *buf)
|
|||||||
|
|
||||||
void CardReader::checkautostart(bool force)
|
void CardReader::checkautostart(bool force)
|
||||||
{
|
{
|
||||||
|
// The SD start is delayed because otherwise the serial cannot answer
|
||||||
|
// fast enough to make contact with the host software.
|
||||||
|
static bool autostart_stilltocheck = true;
|
||||||
if(!force)
|
if(!force)
|
||||||
{
|
{
|
||||||
if(!autostart_stilltocheck)
|
if(!autostart_stilltocheck)
|
||||||
@ -621,7 +623,7 @@ void CardReader::checkautostart(bool force)
|
|||||||
if(autostart_atmillis.expired(5000))
|
if(autostart_atmillis.expired(5000))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
autostart_stilltocheck=false;
|
autostart_stilltocheck = false;
|
||||||
if(!cardOK)
|
if(!cardOK)
|
||||||
{
|
{
|
||||||
initsd();
|
initsd();
|
||||||
|
@ -133,8 +133,6 @@ private:
|
|||||||
ShortTimer autostart_atmillis;
|
ShortTimer autostart_atmillis;
|
||||||
uint32_t sdpos ;
|
uint32_t sdpos ;
|
||||||
|
|
||||||
bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware.
|
|
||||||
|
|
||||||
uint16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory.
|
uint16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory.
|
||||||
|
|
||||||
bool diveSubfolder (const char *&fileName);
|
bool diveSubfolder (const char *&fileName);
|
||||||
|
Loading…
Reference in New Issue
Block a user