INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wann ist die DS1307 synchronisiert?
11.06.2021, 17:10
Beitrag #9
RE: Wann ist die DS1307 synchronisiert?
(11.06.2021 16:08)Tommy56 schrieb:  Diese Lib hat aber keine timeStatus()-Funktion. In Deinem Code steht sie auch nicht. Wo kommt sie also her?
Schau Dir mal das Beispiel zur Lib von Paul Stoffregen an.

Gruß Tommy

Gute Frage wo sie her kommt...
Wenn ich doch nur gut programmieren (und den Code anderer lesen) könnte. Dann bräuchte ich vielleicht auch nicht fragen sondern könnte die Fragen selbst beantworten ;-)
Vielleicht aus der TimeLib ?!?

Ich konnte jetzt einmal den "Fehlerfall" beim Test bekommen.
Nach Spannungswiederkehr am Arduino, die DS1307 war ohne Batterie.
Im Serial Monitor folgende Meldungen:
Zitat:timeStatus(2): 0
**************************************
Synchronisation RTC fehlgeschlagen !!!
**************************************
timeStatus(3): 0
Dann verging einige Zeit (bis zum DCF-Empfang.
Zitat:timeStatus(4): 0
*************************************************
*** Die Funkuhr hat das Zeitsignal empfangen ***
*************************************************
Uhrzeit der DS1307: 00:03:17 am 01.01.1970
Uhrzeit der DCF77 : 17:25:00 am 11.06.21
timeStatus(4): 0
Uhrzeit der DS1307: 00:03:18 am 01.01.1970
Uhrzeit der DCF77 : 17:25:01 am 11.06.21
timeStatus(4): 0
Set der DS1307 mit: 17:25:01 11.06.21
*********************************
*** Die DS1307 wurde gesetzt ***
*********************************
Uhrzeit der DS1307: 17:25:01 am 11.06.2021
Uhrzeit der DCF77 : 17:25:01 am 11.06.21
timeStatus(4): 2

Dann hatte ich noch folgendes Verhalten:
Der Arduino hatte die Zeit der DS1307 schon gesetzt (da DCF-Empfang), es wurde ein Reset durch den Start des Serial Monitor durchgeführt, die DS1307 war ohne Batterie aber die 5V lagen stabil an.

Zitat:timeStatus(2): 0
Synchronisation RTC erfolgreich
timeStatus(3): 2
Uhrzeit der DS1307: 17:15:25 am 11.06.2021
Uhrzeit der DCF77 : 00:00:01 am 01.01.00
timeStatus(4): 2
*************************************************
*** Die Funkuhr hat das Zeitsignal empfangen ***
*************************************************
Uhrzeit der DS1307: 17:17:58 am 11.06.2021
Uhrzeit der DCF77 : 17:18:00 am 11.06.21
timeStatus(4): 2
Uhrzeit der DS1307: 17:17:59 am 11.06.2021
Uhrzeit der DCF77 : 17:18:01 am 11.06.21
timeStatus(4): 2
Set der DS1307 mit: 17:18:01 11.06.21
*********************************
*** Die DS1307 wurde gesetzt ***
*********************************
Uhrzeit der DS1307: 17:18:01 am 11.06.2021
Uhrzeit der DCF77 : 17:18:01 am 11.06.21
timeStatus(4): 2


Aber ich vermute jetzt, dass ich einfach nur
Code:
    if(timeStatus()!= timeSet) {                                                     // wenn Status nicht geaendert
durch
Code:
    if(timeStatus()!=2
ersetzen sollt um eine Aussage dazu zu haben, ob die DS1307 eine plausible Zeit (will damit sagen eine RTC die eine Uhrzeit gesetzt bekommen hat und dann per Batterie weitergelaufen ist und somit natürlich eine beliebige Drift über die Zeit bekommen hat) hat.

Sorry, ich bin zwar ein ambitionierter Hobby-Programmierer, habe aber mein Wissen autodidaktisch entwickelt und daher gibt's grössere (Wissens-)Lücken.

Viele Grüsse
Ralf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2021, 12:09
Beitrag #10
RE: Wann ist die DS1307 synchronisiert?
Allerdings habe ich nirgends gefunden was die einzelnen Werte von timeStatus bedeuten.

Die Vermutung:
0 = die RTC hat keinen (korrekten) Zeitwert (und beginnt bei z. B. 1.1.1970)
1 = ???
2 = es wurde eine Zeit gesetzt und die RTC hat dieses batteriegepuffert weitergezählt
3 = ??? (wenn es dieses Status und ggf. höhere gibt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2021, 12:49
Beitrag #11
RE: Wann ist die DS1307 synchronisiert?
Dazu müsstest Du in Deinen Libs erst mal die Funktion timestatus() finden, dann könnte man das dort nachlesen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2021, 12:58
Beitrag #12
RE: Wann ist die DS1307 synchronisiert?
time lib von Paul Stoffregen, Github:
Code:
setTime(t);                      // set the system time to the give time t
setTime(hr,min,sec,day,mnth,yr); // alternative to above, yr is 2 or 4 digit yr
                                 // (2010 or 10 sets year to 2010)
adjustTime(adjustment);          // adjust system time by adding the adjustment value
timeStatus();                    // indicates if time has been set and recently synchronized
                                 // returns one of the following enumerations:
timeNotSet                       // the time has never been set, the clock started on Jan 1, 1970
timeNeedsSync                    // the time had been set but a sync attempt did not succeed
timeSet                          // the time is set and is synced
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2021, 13:58
Beitrag #13
RE: Wann ist die DS1307 synchronisiert?
Danke.

Das Problem liegt also in der Vermischung der TimeLib und der DS1307RTC.
Wenn die RTC mit der DS1307RTC gesetzt wird, weiß die TimeLib nichts davon und deshalb gibt timeStatus() kein timeSet.
Also entweder nur mit der DS1307RTC auf Basis deren Beispiele arbeiten oder über die TimeLib setzen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  DS1307 RTC - Ausschaltzeitpunkt speichern Foto-Ralf 8 1.016 09.12.2020 12:15
Letzter Beitrag: Foto-Ralf
  Schleife (Durchlauf) abbrechen wann ich es will EXCLUZIVE 11 2.970 22.01.2019 15:52
Letzter Beitrag: Vapalus
  RTC DS1307 stellen / speichern Foto-Ralf 4 6.068 30.03.2015 23:40
Letzter Beitrag: Foto-Ralf
  Programm für die RealTimeClock DS1307 funktioniert mit der IDE 1.6.1 nicht mehr Foto-Ralf 14 10.068 28.03.2015 02:09
Letzter Beitrag: Homer
  Solved: DS1307 über Terminal korrigieren cyberdrive 9 5.704 04.06.2014 11:11
Letzter Beitrag: Thorsten Pferdekämper
  RTC wird nicht synchronisiert Coleby 10 6.689 18.01.2014 20:53
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste