RTC - gemerkte Zeit anzeigen

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

Ich verstehe die "ds1307new" Reference nicht
http://code.google.com/p/ds1307new/wiki/Reference

Weiß jemand die Antwort ?

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]);

Hallo Cetax,

kannst Du wie folgt machen:

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.

Viele Grüße

harding

Hallo harding, Hallo Mario,

harding:
[Nachtrag]
"timenow" benötigst Du, wenn du die neue Library benutzt, eigentlich nur noch wenn Du von vergangenen Zeiten informationen haben willst.

Genau das brauche ich!
Und es klappt XD

char dayofweek[7][3] = {"So","Mo","Di","Mi","Do","FR","Sa"};

RTC.fillByTime2000(timenow[TI]); 
      if (RTC.hour < 10)                    // correct hour if necessary
      {
        Serial.print("0");
        Serial.print(RTC.hour, DEC);
      } 
      else
      {
        Serial.print(RTC.hour, DEC);
      }
      Serial.print(":");
      if (RTC.minute < 10)                  // correct minute if necessary
      {
        Serial.print("0");
        Serial.print(RTC.minute, DEC);
      }
      else
      {
        Serial.print(RTC.minute, DEC);
      }
      Serial.print(" ");
      Serial.println(dayofweek[RTC.dow]);

Vielen Dank.

PS: Bin fast fertig mit "Pin-Ausgang per Zeitvorgabe über Webinterface schalten" !
Sketch folgt, wenn fertig Dokumentiert.

Glückwunsch !

Dass danach die Variable RTC nicht mehr die aktuelle Uhrzeit enthält, ist dir ja klar.
Der Name timenow[] ist evtl. irreführend.