Gentilissimi,
ho un problema quando ripeto più volte il comando che lista i files sulla SD.
Il mio hardware:
ARDUINO GENUINO UNO
ARDUINO ETHERNET SHIELD
MICRO SD 2GB
Scketch di partenza : Examples/SD/Listfiles
L'ho modificato inserendo in un loop la chiamata
for (int i = 1; i<100; i++){
myFile = SD.open("/");
printDirectory(myFile, 0);
Serial.println(" ");
Serial.print(" Contatore ");
Serial.println(i);
Serial.println(" ");
Allego lo sketck completo, con in fondo il risultato che ottengo sul monitor seriale... in pratica tutto funziona bene fino al contatore = 9, al successivo perde qualche colpo, e dal contatore = 20 non funziona più.
Buongiorno,
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiIN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
gpb01:
Buongiorno,
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiIN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
Grazie !!! Gentilissimo. Questo problema mi ha fatto uscire pazzo.
Però a questo punto il file listfiles.ino distribuito nell'esempio dell'SDK Arduino andrebbe quanto meno corretto, ad evitare che qualcun'altro incappi nello stesso problema.
Il file corretto potrebbe essere qualcosa del genere:
/*
Listfiles
This example shows how print out the files in a
directory on a SD card
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)
created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
modified 2 Feb 2014
by Scott Fitzgerald
modified 7 Gen 2018
by Luciano Pautasso (thanks to SuccoPera) #07012018
This example code is in the public domain.
*/
#include <SPI.h>
#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 native USB port only
}
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
root = SD.open("/");
printDirectory(root, 0);
// #07012018 close file ! ( to avoid error repeating this action more times)
root.close();
// #07012018 close file ! ( to avoid error repeating this action more times)
Serial.println("done!");
}
void loop() {
// nothing happens after setup finishes.
}
void printDirectory(File dir, int numTabs) {
while (true) {
File entry = dir.openNextFile();
if (! entry) {
// no more files
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);
}
entry.close();
}
}
Credo tu faccia confusione ...
... i "moderatori" e gli "admin" si occupano (nel loro tempo libero e gratuitamente) della "gestione" del forum (... e neanche dello sviluppo e dei bugs di esso) e nulla hanno a che vedere con tutto il resto.