Hallo,
ich hänge gerade dabei, mir den gespeicherten Timestamp wieder als Uhrzeit und Datum anzuzeigen.
timenow = RTC.time2000;
Wie kann ich jetzt timenow als Tag, Stunde und Minute anzeigen lassen? timenow ergibt ja die Sekunden seit 01.01.2000
Wie kann ich das im SerialMonitor anzeigen lassen?
Serial.println(timenow, DEC);
zeigt ja nur die Sekunden an...
Nicht aber Samstag, 23:15 Uhr
Warum verwendest Du nicht die anderen Membervariablen, die in der Referenz beschrieben sind?
//Wochentage
const char* dayofweek["So","Mo","Di","Mi","Do","Fr","Sa"];
//erstmal die aktuelle Zeit aus der DS1337 lesen
RTC.getTime();
// das Jahr ausgeben
Serial.println(RTC.year, DEC);
// den Monat ausgeben
Serial.println(RTC.month, DEC);
// den Tag ausgeben
Serial.println(RTC.day, DEC);
//Stunde
Serial.println(RTC.hour, DEC);
//Minute
Serial.println(RTC.minute, DEC);
//Sekunde
Serial.println(RTC.second, DEC);
//Tag der Woche
Serial.println(dayofweek[RTC.dow]);
RTC.fillByTime2000(timenow); //berechnet die internen Variablen aufgrund des übergebenen Zeitstempel neu
Sekunde = RTC.second; //holt sich die Sekunde vom vorher gesetzten Zeitstempel, usw. mit allen anderen Variablen möglich, RTC Zeit wird nicht beeinflusst
//im Code dann wieder die aktuelle RTC Zeit auslesen
RTC.getTime();
// jetzt sind die Zeit- und Datumvariablen wieder mit der aktuellen RTC Zeit belegt
[Nachtrag]
"timenow" benötigst Du, wenn du die neue Library benutzt, eigentlich nur noch wenn Du von vergangenen Zeiten informationen haben willst.
Eventuell bist Du auf eine Programmdoku zur alten Library gestoßen. Hier musste man den aktuellen Zeitstempel erst auslesen und dann Stunde, Minute usw. berechnen um inkonsistenten Zeiten vorzubeugen.
Durch die neue Library DS1307new wird das nicht mehr benötigt. Die Funktion "RTC.getTime();" holt sich die Zeit aus dem RTC Schaltkreis und speichert diese in den internen Variablen für Stunde, Minute usw. ab. Du kannst dann in aller Ruhe diese Werte mit z.B. "RTC.second" auslesen (wie auch mkl0815 geschrieben hat).
Erst ein neues "RTC.getTime();" holt die aktuelle Schaltkreis-Zeit und legt diese wieder in den Variablen ab.
harding:
[Nachtrag]
"timenow" benötigst Du, wenn du die neue Library benutzt, eigentlich nur noch wenn Du von vergangenen Zeiten informationen haben willst.