Forum: Mikrocontroller und Digitale Elektronik RTC mit DCF synchronisieren


von David V. (davidos)


Lesenswert?

Hallo,ich möchte ein RTC Uhr mit DCF signal jede Stunde synchronisieren, 
damit brauche ich nicht jedes mal die Zeit einzustellen, hat jemand hier 
ein funktion für diese synchronisation, oder eine Lösung dafür, danke.
David

von Düsendieb (Gast)


Lesenswert?

nimm gleich die Bausteine von Ullrich Rading, die syncronisieren bei 
jedem gültigem DCF Empfang

von Peter D. (peda)


Lesenswert?


von David V. (davidos)


Lesenswert?

Dankr für schnelle Antwort, kannst du bitte mir diese funktion zeigen, 
ich bin neu hier.

von Peter D. (peda)


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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Peter Dannegger schrieb:
> Eine externe RTC wäre Unsinn, wenn man eh DCF77 drin hat.

Nicht wirklich. 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. Es gibt eben auch Spezialanwendungen.

von David V. (davidos)


Lesenswert?

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, und andere Sache mit welche Takt hast 
du dein DCF Signal abgetastet.Danke.
David

von Peter D. (peda)


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

von Helmut L. (helmi1)


Lesenswert?

Peter Dannegger schrieb:
> nehme ich lieber ein kleine Wartezeit
> nach einem Netzausfall in Kauf.

Aber auch nur wenn der Empfang immer gut ist. Wenn nicht sinds auch 
schon mal laengere Wartezeiten.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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

Seit etwa 15 Jahren gibt es SuperCaps.

von Εrnst B. (ernst)


Lesenswert?

Knut Ballhause schrieb:
> und das Gerät auch schon mal ein paar Wochen im Schrank
> steht

Knut Ballhause schrieb:
> Seit etwa 15 Jahren gibt es SuperCaps.

Nun die Preisfrage:
Wie groß muss der Supercap werden, um für "ein paar Wochen" seine 
Selbstentladung und den RTC-Chip zu versorgen?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Εrnst B✶ schrieb:
> Nun die Preisfrage:
> Wie groß muss der Supercap werden, um für "ein paar Wochen" seine
> Selbstentladung und den RTC-Chip zu versorgen?

Ein 1F-Supercap 5.5V an einer DS1390U-33+ RTC läuft nachweislich über 
einen Monat.

von Peter D. (peda)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.