DCF77 mit RTC - Einstellung verschiedener Zeitzonen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • DCF77 mit RTC - Einstellung verschiedener Zeitzonen

      Aufgrund der aktuellen Diskusionen bezüglich möglicher Zeitunterschiede in den EU Ländern (z.B.: Deutschland-Winterzeit und Österreich_Sommerzeit) habe ich mal bei meiner Aquariumsteuerung versucht die DCF-Zeit um eine Stunde (+/-) zu verändern!
      Im Prinzip habe ich gedacht am einfachsten wäre es wenn Sync dann Dcf77_hour = Dcf7_hour + 1 bzw -1
      Aber das funktioniert natürlich nicht ;(
      Ist wohl doch nicht so einfach wenn man die Dcf77-Routine von Bascom nutzen will und noch dazu ein RTC-Modul benutzt.
      Wie könnte man das lösen?
      Hat dazu jemand eine Idee?
    • Und wann synchronisiert wird, wird durch ein flag angezeigt.
      Aber, wo siehst du das Problem? Wohnst du in A und verwendest DCF77, was ja die deutsche Zeit liefert?
      Ich könnt mir auch vorstellen, dass am Zeitsignal auch was verändert wird und an die neue Zeitregelung angepasst wird. Eine Mez könnte es dann ja nicht mehr geben.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      Aber, wo siehst du das Problem? Wohnst du in A und verwendest DCF77, was ja die deutsche Zeit liefert?
      Genau! So wie es derzeit aussieht will Deutschland durchgehend die Winterzeit und wir durchgehend die Sommerzeit!
      Das mit dem Flag hab ich schon probiert aber da tut sich nichts. Wenn ich dann die dcf77-hour um 1 erhöhe! Alles bleibt wie wenn ich nichts geändert hätte.
      Funkt mir da eventuell die RTC dazwischen?
      Bei meinem gekauften Funkwecker hätte ich kein Problem. Den kann ich beliebig viele Stunden vor- oder zurückstellen!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von avralfred ()

    • Das flag ist dcf_status. Man muss es selber resetten, vom Programmcode wird es nur gesetzt. Wenn der dcf-Empfang gemäß den Vorgaben in der config erfolgreich war und die Variablen _hour, _min usw auf dem neuesten Stand gebracht wurden, wird dieses flag=1. Dann weiß man, die Stunde muss ich jetzt wieder an meine Bedürfnisse anpassen. Die Rtc macht nur das, was man ihr sagt. Wenn du die 1 Stunde vorgehen lässt, oder 1 Stunde nach, dann macht die das. Ihre Aufgabe ist es gleichmäßig zu gehen, auch ohne Stromversorgung.

      Das wird dann lustig, wenn A und D unterschiedliche Zeiten haben. Dann schauen die A-ler die Tagesschau der D-ler, weil die aktueller ist. Oder ist es andersrum? a_27_b277ca12
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Nun funktioniert die Stundenkorrektur wie gewünscht! (Hoffentlich brauche ich sie nie!!!)
      Ich hatte nur den Fehler gemacht die "Dcf77_hour" um 1 erhöhen zu wollen. Es klappt nur ohne Dcf77!

      djmsc schrieb:

      In deiner DCF-Config hast du Update = 0, bedeutet also ein kontinuierliches Update der Zeit und somit kann auch nicht die _hour + 1 greifen.
      Stell das Update auf 1 oder 2 für stündliches oder tägliches Update der Zeit, dann sollte es auch besser klappen.
      Danke! Habe nun auf stündliches Update umgestellt.

      Der Codeteil sieht nun so aus:

      BASCOM-Quellcode

      1. 'DCF77 und DS1307
      2. '------------------------------------------------------------------------------
      3. Temp_byte_1 = Dcf_status And &H80 'Prüfung ob SoftClock durch DCF77 synchronisiert (Bit 7 aus Statusbyte)
      4. If Temp_byte_1 = &H80 Then 'Wenn Synchronisiert dann
      5. '_hour = _hour + 1 'Korrektur falls ab 2019 D die Winterzeit und A die Sommerzeit einfuehrt
      6. A = 3480 'Variable auf 58 Minuten setzen (wird in der Sectic runtergezaehlt)
      7. Reset Dcf_status.7 'bei erfolgreichem SYNC Status-Bit zurücksetzen
      8. Gosub Rtc_set_rtc_clock 'DS1307 synchronisieren
      9. End If
      tschoeasch - auch dir ein DANKE für deine Erklärung!
    • avralfred schrieb:

      Ist wohl doch nicht so einfach wenn man die Dcf77-Routine von Bascom nutzen will und noch dazu ein RTC-Modul benutzt.
      Hallo avralfred,

      gleich vorab, betrachten wir das RTC- Modul mal als überflüssig, wenn DCF77- Signal empfangen wird(macht ja das Ding nur mehr Aufwand, warum benötigt weis ich nicht).
      DCF77 ist ein Telegramm das kontinuierlich gesendet wird. Wenn ein Config Dcf77 dieses Telegramm als intakt und plausibel getestet hat, steht prinzipiell dem Stellen der Uhr mit diesen Informationen nichts mehr im Wege. Naklar kann diese Information vor dem Stellen geändert werden. Somit finde ich dein „Gedankenspiel“ interessant.

      tschoeatsch schrieb:

      Und wann synchronisiert wird, wird durch ein flag angezeigt.
      Aber, wo siehst du das Problem? Wohnst du in A und verwendest DCF77, was ja die deutsche Zeit liefert?
      Richtig das Flag ist aber nur ein „Vergleicher“ in Bascom ob DCF77 und Config Clock =User/Soft übereinstimmen. Wenn nicht bekommt DCF77- Zeit den vorrang zum übernehmen.Schriebt man Dcf_status.7 = 1und hour = hour + 1 dann ist Stunde gesetzt. Muss aber je nach Anspruch auf Genauigkeit im Zeitfenster eingebunden werden. Stündlich, Täglich oder Jährlich mit DCF77 und ohaa auch noch auf RTC übertragen. Frage bleibt wann setzt Du Dcf_status.7 = 0 für Sekundengenauigkeit?

      tschoeatsch schrieb:

      Das flag ist dcf_status. Man muss es selber resetten, vom Programmcode wird es nur gesetzt. Wenn der dcf-Empfang gemäß den Vorgaben in der config erfolgreich war und die Variablen _hour, _min usw auf dem neuesten Stand gebracht wurden, wird dieses flag=1. Dann weiß man, die Stunde muss ich jetzt wieder an meine Bedürfnisse anpassen. Die Rtc macht nur das, was man ihr sagt. Wenn du die 1 Stunde vorgehen lässt, oder 1 Stunde nach, dann macht die das. Ihre Aufgabe ist es gleichmäßig zu gehen, auch ohne Stromversorgung.
      Super beschrieben. Aber auch ein RTC mit Batterie ist wohl auf Langzeit gesehen so genau wie eine Eieruhr. DCF bekommt ein sehr genauen Takt(woher selber nachlesen) Kommt nicht mit GPS und Go, ist ja eine andere Genauigkeitsklasse. Aber gleichwertig wenn es um die Stromversorgung geht. Wird die Anlage wieder bestromt ist auch DCF77 wieder auf aktuellemStandden der µC unverzüglich übernimmt. Ist Batterie des RTC kapputscho, nützt wohl eine Syn. des, auch nicht mehr.


      djmsc schrieb:

      In deiner DCF-Config hast du Update = 0, bedeutet also ein kontinuierliches Update der Zeit und somit kann auch nicht die _hour + 1 greifen.
      Stell das Update auf 1 oder 2 für stündliches oder tägliches Update der Zeit, dann sollte es auch besser klappen.
      Oh dies ist für mich Neu. Update- Flag kann ein Byte für Zeitübernahme sein wenn ein plausibles Telegramm für Syncron da ist. Sehr interessant, muss ich mal testen.
      Ich bin für Normalzeit. Da kann man sich das verbiegen der Sonnenuhrzeiger ersparen.
      Mit freundlichen Grüßen


    • Hallo fredred,
      es freut mich dass du dich auch in dieses Thema einbringst. Ich lese deine Beiträge immer besonders gerne - die sind immer etwas "anders"!

      fredred schrieb:

      gleich vorab, betrachten wir das RTC- Modul mal als überflüssig, wenn DCF77- Signal empfangen wird(macht ja das Ding nur mehr Aufwand, warum benötigt weis ich nicht).
      Also das RTC-Modul habe ich in Verwendung dass ich sofort nach dem Einschalten der Stromversorgung einen deffinierten Zustand aller Zeitabhängigen Vorgänge habe. Ohne RCT hätte ich dies erst nach SYNC - und dass dauert je nach Wetterlage und sonstigen Einflüssen von 2 bis ca. 20 Minuten! Bin etwa 687,62 km vom Sender entfernt!


      fredred schrieb:

      Naklar kann diese Information vor dem Stellen geändert werden. Somit finde ich dein „Gedankenspiel“ interessant.
      Meiner Meinung nach kann ich die Zeit zwar vor dem Stellen verändern - macht aber keinen Sinn da ich nach dem SYNC wieder die "falsche" Zeit hätte!
      Ich muss die Zeit unmittelbar nach dem SYNC ändern! Nur dann steht mir ständig "meine" geänderte Zeit zur Verfügung.
    • avralfred schrieb:

      es freut mich dass du dich auch in dieses Thema einbringst.
      Danke.
      ist aber wohl dein „Produktproblem“. Config Clock des µC ist doch ein interner „RTC“. Der läuft auch ohne zusätzliche Schnittstelle genau so oder vielleicht sogar stabilerer wie eine externe „UHR“. Natürlich wenn alles aber wirklich alles Netzunabhängig, Langzeit funktionieren muss und soll, ist natürlich dein Projekt als „Inselbetrieb“ gerechtfertigt.
      Gruß
    • fredred schrieb:

      Muss aber je nach Anspruch auf Genauigkeit im Zeitfenster eingebunden werden. Stündlich, Täglich oder Jährlich mit DCF77 und ohaa auch noch auf RTC übertragen. Frage bleibt wann setzt Du Dcf_status.7 = 0 für Sekundengenauigkeit?
      Genau - auf den Anspruch auf Genauigkeit kommt es an! Meine DCF-Uhr in der Aquariumsteuerung hinkt geschätzt etwa 0,2 Sekunden hinter einem gekauften Funkwecker nach.
      Mir ist das wirklich genau genug - und die Fische haben desswegen auch noch nichts gesagt! :D
    • @fredred wie kommst du immer darauf, dass ein Schreiben auf dcf_status.7 was bewirkt? In der Hilfe dazu steht

      This bit indicates, that the DCF-Part has set the time of the Clock-part.

      (bit7 von dcf_status)

      es zeigt also eindeutig an, ob die softclock-Variablen durch die für gültig erachtete Uhrzeit aktualisiert wurden. Ein Schreiben von deiner Seite bringt nix.

      Ein _hour+1 kann natürlich auch in die Hose gehen. Ich weiß jetzt nicht, was bei 23Uhr passiert, ob die 24 automatisch zu 0 Uhr wird und der Tag um eins erhöht wird. Sicherer wird es, wenn die syssec um 3600 Sekunden erhöht wird und über time(syssec) die Zeitvariablen neu gesetzt werden.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • avralfred schrieb:

      fredred schrieb:

      Muss aber je nach Anspruch auf Genauigkeit im Zeitfenster eingebunden werden. Stündlich, Täglich oder Jährlich mit DCF77 und ohaa auch noch auf RTC übertragen. Frage bleibt wann setzt Du Dcf_status.7 = 0 für Sekundengenauigkeit?
      Genau - auf den Anspruch auf Genauigkeit kommt es an! Meine DCF-Uhr in der Aquariumsteuerung hinkt geschätzt etwa 0,2 Sekunden hinter einem gekauften Funkwecker nach.Mir ist das wirklich genau genug - und die Fische haben desswegen auch noch nichts gesagt! :D
      Um zu prüfen, wer hinterher ist, schließe doch einfach eine Led an den Dcf-Empfänger an (natürlich über einen Treiber, der Ausgang eines Dcf-Empfängers ist in der Regel zu schwach für eine Led). Der Beginn des 100/200mS-Pulses sollte der Start der neuen Sekunde sein.

      Das deine Fische noch nix gesagt habe, dieses Wortspiel finde ich gut a_14_3ef964b0
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Also ich finde, wenn da eh ein RTC- Modul dranhängt, reicht es aus, wenn man die Zeit einmal am Tag synchronisiert. Das am besten gegen 3 Uhr, dann bekommt man auch offizielle Zeitumstellungen mit, solange es die noch gibt. Dann hat man den ganzen Streß mit dem Tageswechsel auch nicht.
      Wenn das die Lösung ist, möchte ich mein Problem wieder haben.
    • ceperiga schrieb:

      Also ich finde, wenn da eh ein RTC- Modul dranhängt, reicht es aus, wenn man die Zeit einmal am Tag synchronisiert. Das am besten gegen 3 Uhr, dann bekommt man auch offizielle Zeitumstellungen mit, solange es die noch gibt. Dann hat man den ganzen Streß mit dem Tageswechsel auch nicht.
      Das sehe ich auch so :)
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.
    • avralfred schrieb:

      tschoeatsch schrieb:

      Ein _hour+1 kann natürlich auch in die Hose gehen. Ich weiß jetzt nicht, was bei 23Uhr passiert, ob die 24 automatisch zu 0 Uhr wird und der Tag um eins erhöht wird.
      Ich werde jetzt die Zeit um eine Stunde vorstellen und einen Testlauf bis morgen machen. Um 23 Uhr werde ich ja sehen was passiert!
      Da passiert natürlich nix. Ich meinte, wenn man in der 23. Stunde das _hour+1 vor nimmt, also _hour den Wert 24 bekommt, dann könnte es durcheinander kommen.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------