RTC mit DCF synchronisieren

#1904094
Lesenswert?

David Vivandis schrieb:
> Dankr für schnelle Antwort, kannst du bitte mir diese funktion zeigen,
> ich bin neu hier.

Die Synchronisation erfolgt jedesmal, wenn der Empfang korrekt ist:
1
      if( dcf77error == 0 && newtime.second == 59 ){
2
        synchronize = 0xFF;
3
  sync_sec();
4
  time.second = 0;
5
  time.minute = newtime.minute;
6
  time.hour = newtime.hour;
7
  time.wday = newtime.wday;
8
  time.day = newtime.day;
9
  time.month = newtime.month;
10
  time.year = newtime.year;
11
      }
12
      newtime.second = 0;
13
      dcf77error = 0;

Synchronisiert wird die interne RTC.
Eine externe RTC wäre Unsinn, wenn man eh DCF77 drin hat.


Peter
#1904162
Lesenswert?

Knut Ballhause schrieb:
> Wenn die Zeit sofort nach dem Einschalten zur Verfügung
> stehen muß und das Gerät auch schon mal ein paar Wochen im Schrank
> steht, dann ist eine RTC ratsam.

Dann muß man aber abwägen, ob der Ärger mit einer zusätzlichen Batterie 
einem das Wert ist.

Da mir schon mehrmals in älteren Geräten Stützbatterien ausgelaufen sind 
und Zerstörungen verursacht haben, nehme ich lieber ein kleine Wartezeit 
nach einem Netzausfall in Kauf.

Peter
#1905066
Lesenswert?

David Vivandis schrieb:
> das ist mein Problem Peter, ich benutze ein DS1307 RTC d.h ein Externe
> RTc, kann ich mit deiner funktion diese RTC jede Stunde syncronisieren,
> damit habe ich immer genau Zeit,

Das Codestück oben schreibt die DCF77-Zeit in die interne Uhr. Dann 
kannst Du die Zeit auf Deine RTC ausgeben. Du wirst ja schon ne 
Ausgabefunktion zum Stellen haben.

Allerdings haben viele externe RTC ein ziemlich vergurktes Zahlenformat, 
z.b. die Minuten als 7Bit-packet-BCD usw.
Die mußt Du dann entsprechend umwandeln.

Ich arbeite in Programmen grundsätzlich immer im Lieblingsformat des MC 
und Compilers, d.h. 8-, 16- oder 32-Bit Integer-Zahlen.


> und andere Sache mit welche Takt hast
> du dein DCF Signal abgetastet.

64Hz, hat sich so ergeben.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren