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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.