ich bräuchte mal euere Hilfe bei folgendem Problem:
Ich betreibe einen Arduino Mega mit SD-Karte und RTC unter anderem als Datenlogger.
Das funktioniert auch hervorragend, aber alle Dateien, die erzeugt werden haben den 1.1.2000 als Timestamp.
Wie kriege ich den Arduino dazu, die Zeit des RTC als als Timestamp zu nutzen?
Also die korrekte Zeit und das Korrekte Datum für die Datei in die FAT zu schreiben?
ich verwende die SD Library und die
DS1307RTC lib aus der Time library, (möchte aber später auf die DS1307new.h Library von Peter Schmelzer wechseln, wegen der darin enthaltenen Sommerzeit Funktion - doch dazu vielleicht ein anderes Mal.)
Es scheinen in der SD Bibliothek Funktionen zu existieren, um den Timestamp der Datei zu beinflussen, wie dateTime() oder dateTimeCallback() in der \utility\SdFat, aber ich verstehe nicht, wie ich die benutzen kann!
ich dachte, dass mit dem Befehl "#include <utility/SdFat.h>" in der SD.h alle Funktionen, die in der SdFat.h als public definiert sind, auch im Sketch bekannt sein müßten, aber die sind immer unbekannt.
Könnt Ihr mir helfen?
Hilfe bitte in leicht Verständlichen Worten. Ich habe zwar ein ganz gutes Systemverständnis, bin aber die die Tiefen von C noch nicht vorgedrungen.
man muß die Funktion DateTime, die in der lib auskommentiert ist, als Funktion in den eigenen Sketch einfügen:
// call back for datei timestamps
void dateTime(uint16_t* date, uint16_t* time) {
DateTime now = RTC.now();
// return date using FAT_DATE macro to format fields
*date = FAT_DATE(now.year(), now.month(), now.day());
// return time using FAT_TIME macro to format fields
*time = FAT_TIME(now.hour(), now.minute(), now.second());
}
und dann noch, ebenfalls im eigenen Sketch noch die Timestampfunktion einschalten:
// setzt die date time callback function
SdFile::dateTimeCallback(dateTime);
Ich such' mir seit gut 2 Wochen den Wolf um die Lösung dafür zu finden (und zu verstehen), bis ich endlich dann doch die Frage ins Forum gestellt habe.
Warum ich ausgerechnet jetzt, ein paar Stunden nach dem ich die Frage gestellt habe, selbst die Lösung finde, ist mir ein Rätsel!
sei's drum, vielleicht ist es ja jemand Anderem nütze!