Hallo,
ein Problem gelöst und 3 neue Gefunden.
Ich habe es hinbekommen, Daten auf eine SD-Karte zu schreiben (sind Einstellungen, welche einen Reset überstehen sollen). Lese ich diese wie folgt aus:
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
Habe ich eine richtige Ausgabe in der Seriellen Konsole. Nun Versuche ich diese Daten in eine Variable zu schreiben, damit ich diese beim Neustart wieder verwenden kann. Leider scheinen die Daten nach der While Schleife weg zu sein.
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
//Serial.write(myFile.read());
dummystring += myFile.read();
Serial.write(dummystring); // Diese Zeile wird problemlos und richtig wiedergegeben
}
Serial.write("Test");
Serial.write(dummystring); // DIese Zeile ist Leer
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
Warum ist wird die Ausgabe in der Schleife richtig wiedergegeben, und die drauf folgende, nachdem die SChleife durchlaufen ist nicht mehr.
Oder habe ich einen kompletten Denkfehler was das Verwenden von gespeicherten Daten angeht und ich muß ganz anders dran gehen?
Leider sind alle Beispiele die ich gefunden habe so geschrieben, das die Daten in der Konsol direkt ausgegeben werden, sprich so wie ind er Schleife, außerhalb der Schleife habe ich leider nichts gefunden
Danke für alle Infos, Hinweise oder Links
CL
PS der Schreibcode (nicht das der Fehler hier liegt; ist im Prinzip nichts weiter als ein abgewandeltest WriteRead Exaple :D):
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
SD.remove("/test.txt");
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("test.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to test.txt...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}