Guten Tag zusammen,
Eine Anfängerfrage zum Lesen einer SD Karte. Das Problem ist nicht, dass ich zu diesem Thema nichts finde, sondern so viel, dass ich ein wenig überfordert bin, wie ich da am besten ran gehe. Hier und auch in anderen Foren gibt es dazu hunderte Threads.
Ich benutze die standard Sd Lib von Arduino und kann auf meine Karte Werte schreiben und lesen.
Zu beginn meines Programms lese ich aus der SD Karte die config File "config.txt"
Dort sind im Moment 4 kommagetrennte Werte drin, die ich im Programm als int verwenden will.
50,50,75,100,20
Mit:
conf = SD.open("config.txt");
if (conf)
{
Serial.println("config.txt:");
// read from the file until there's nothing else in it:
while (conf.available()) {
Serial.write(conf.read());
}
// close the file:
conf.close();
Serial.println(conf);
lese ich die Datei ein. Das klappt. Jetzt stehe ich auf dem Schlauch, wie ich diese 4 Werte aus dem Sting in 4 int´s stopfe. Dachte an sowas.
char delimiter[] = ",";
char *ptr;
ptr = strtok(conf, delimiter); // <-- Hier meckert er.
while(ptr != NULL)
{
i++
int number[i] = atoi(ptr); //<--- vermutlich totaler quatsch
ptr = strtok(NULL, delimiter);
}
}
Aber das geht leider nicht, evtl bin ich ja ganz auf dem Holzweg. Ich hab das immer noch nicht ganz verstanden wie man mit den Stings umgehen muss. Jetzt meckert er irgendwas mit char* und char.... Ich will nur die 4 Werte als int haben, das kann doch nicht so schwer sein?
Vielen Dank!!