Bonjour à tous
J'ai un code qui va initié ma carte et créer et incrémenter le nom des fichier.
sprintln(F("\nInitializing SD"),0);
pinMode(PIN_SDLED, OUTPUT);
digitalWrite(PIN_SDLED,LOW);
if (!SD.begin(4)) {
sprintln(F("Card init. failed!"),0);
isSdReady = false;
digitalWrite(PIN_SDLED,HIGH);
// error(2);
}
else
{
// ICI CA MARCHE
isSdReady = true;
sprintf(sd_logFile,"%s", ADALOG);
// Check if file exist sarting from ADALOG00.TXT
for (uint8_t i = 0; i < 100; i++) {
sd_logFile[6] = '0' + i/10;
sd_logFile[7] = '0' + i%10;
// create if does not exist, do not open existing, write, sync after write
if (! SD.exists(sd_logFile)) {
break;
}
}
sprintf(sd_gpsLogFile,"%s", GPSLOG);
// Check if file exist sarting from GPSLOG00.TXT
for (uint8_t i = 0; i < 100; i++) {
sd_gpsLogFile[6] = '0' + i/10;
sd_gpsLogFile[7] = '0' + i%10;
// create if does not exist, do not open existing, write, sync after write
if (! SD.exists(sd_gpsLogFile)) {
break;
}
}
// JUSQU=ICI TOUT FONCTION!!
// List SD content
logfile = SD.open("/");
printDirectory(logfile, 0);
SerialUSB.println("done!");
logfile.close();
}
void printDirectory(File dir, int numTabs) {
while(true) {
File entry = dir.openNextFile();
if (! entry) {
// no more files
SerialUSB.println(F("Break"));
break;
}
for (uint8_t i=0; i<numTabs; i++) {
SerialUSB.print('\t');
}
SerialUSB.print(entry.name());
if (entry.isDirectory()) {
SerialUSB.println("/");
printDirectory(entry, numTabs+1);
} else {
// files have sizes, directories do not
SerialUSB.print("\t\t");
SerialUSB.println(entry.size(), DEC);
}
entry.close();
}
}
Tout fonctionne sauf cette partie
// List SD content
logfile = SD.open("/");
printDirectory(logfile, 0);
SerialUSB.println("done!");
logfile.close();
Si je mets cette partie, juste dessous le commentaire // ICI CA MARCHE, il me liste le contenu de la carte SD.
Par contre, si je le laisse là ou il est, il n'affiche rien du tout. Le texte "Break" est affiché et rien de plus.
Alors je me demande si le SD.exists a une influence.
Voyez-vous?