J'essaie de créer une liste de fichiers sur ma carte SD c'est assez facile à faire une fois mais au moment où je lance le programme plus d'une fois la liste soit raccourcie ou le programme dit il n'y a pas de fichiers du tout. Pour simplifier le plus possible, j'utilise l'exemple SD fourni avec la bibliothèque SD arduino et je mets juste la partie setup (qui devrait normalement être exécutée une fois) dans la partie loop. Voici ce que j'ai avec ça.comment revérifier le fichier dans la carte SD Arduino
#include <SD.h>
File root;
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
// Note that even if it's not used as the CS pin, the hardware SS pin
// (10 on most Arduino boards, 53 on the Mega) must be left as an output
// or the SD library functions will not work.
pinMode(10, OUTPUT);
if (!SD.begin(10)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
}
void loop()
{
Serial.println("hit any key then enter to run the list");
while(!Serial.available())
{;}
Serial.read();
root = SD.open("/");
printDirectory(root, 0);
Serial.println("done!");
// nothing happens after setup finishes.
}
void printDirectory(File dir, int numTabs) {
while(true) {
File entry = dir.openNextFile();
if (! entry) {
// no more files
//Serial.println("**nomorefiles**");
break;
}
for (uint8_t i=0; i<numTabs; i++) {
Serial.print('\t');
}
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println("/");
printDirectory(entry, numTabs+1);
} else {
// files have sizes, directories do not
Serial.print("\t\t");
Serial.println(entry.size(), DEC);
}
}
}
Mais je reçois cette sortie bizarre après l'exécution, il
Initialiser carte SD ... initialisation fait.
a frappé une touche puis entrez pour exécuter la liste
HFBVYRG.TXT 7
THBVFG.TXT 7
WAZXDSQ.TXT 7
QAZXSW.TXT 21
WSXZAQ .TXT 7
1478523.TXT 7
QWSDFRE.TXT 7
ZXCVBNM.TXT 7
MKOLIJY.TXT 7
fait!
a frappé une touche puis entrez pour exécuter la liste
HFBVYRG.TXT 7
THBVFG.TXT 7
WAZXDSQ.TXT 7
QAZXSW.TXT 21
WSXZAQ .TXT 7
1478523.TXT 7
QWSDFRE.TXT 7
ZXCVBNM.TXT 7
MKOLIJY.TXT 7
fait!
a frappé une touche puis entrez pour exécuter la liste
HFBVYRG.TXT 7
THBVFG.TXT 7
WAZXDSQ.TXT 7
QAZXSW.TXT 21
fait!
a frappé une touche puis entrez pour exécuter la liste
fait!
a frappé une touche puis entrez pour exécuter la liste
fait!
a frappé une touche puis entrez pour exécuter la liste
fait!
a frappé une touche puis entrez pour exécuter la liste
///////////////////////////////// ////////////////////////////////////////////////////////////////////// Comme vous pouvez le voir, il devient de plus en plus court, puis s'arrête tout simplement.
Est-ce que quelqu'un a des idées pourquoi?
J'ai essayé de jouer avec des pointeurs et de fermer et rouvrir le fichier mais je n'ai rien trouvé.
Toutes les idées seraient grandement appréciées.
Je ne peux pas vous dire à quel point je suis heureux hahahahah !!! Merci beaucoup cela m'a embêté pendant des jours. Je vais jeter un bon coup d'oeil à votre code mais la première fois que je l'ai fait sur le code de base ça a fonctionné parfaitement :) Juste une dernière chose mais c'est juste pour la connaissance générale savez-vous pourquoi il a donné la liste deux fois ? Si vous ne savez pas, je ne me dérange pas MERCI ENCORE – Spider999
OMG! C'est aussi une solution à mon problème. merci! – XBasic3000