Hallo, ich habe mich ein bisschen hier im Forum umgesehen. Habe ich richtig verstanden,dass es drei verschiedene Möglichkeiten gibt, einen genauen Sekundentakt zu erzeugen?? Einmal mit einem externen QUarz (RTC-Chip), mit dem Timer vom uC aus jeder X-beliebigen Quarzfrequenz und schließlich durch ein DCF77 Modul. Worin liegen die Vorteile? Was würdet ihr mir für eine Propelleruhr empfehlen. RTC mit Knopfbatterie, falls Stromausfall o.Ä. passiert :) Eine andere Frage ist, gibt es einen Algorithmus mit dem ich auch Sommer und Winterzeit "berechnen" kann? Soweit ich weiß ist Umstellung von Winterzeit auf Sommerzeit: Am letzten Sonntagmorgen im März werden die Uhren von 02:00 auf 03:00 Uhr vorgestellt. Man verliert eine Stunde. Und die Umstellung von Sommerzeit auf Winterzeit: Am letzten Sonntagmorgen im Oktober werden die Uhren von 03:00 auf 02:00 Uhr zurückgestellt. Man gewinnt eine Stunde. Könnte man doch einfach immer auf einen Sonntag prüfen oder?
tobias p. schrieb: > Eine andere Frage ist, gibt es einen Algorithmus mit dem ich auch Sommer > und Winterzeit "berechnen" kann? Streng genommen nicht, da das nicht vorhersehbar ist und jederzeit abgeschafft oder sich ändern kann. Schau mal im Wikipediaartikel zur Sommerzeit nach. Sinnvoller als da irgendwie wild Uhren umzustellen ist es das so zu machen wie es jeder macht. Du hast eine interne Uhr, die jede Sekunde um eins hoch zählt, und Du rechnest daraus die lokale Zeit aus. Das machst Du am Besten in 2 Stufen, einmal setzt Du die interne Zeit in die lokale Zeitzone um. Das ist im einfachsten Falle ein simples Offset, im schwierigeren Fall (mit Sommerzeit) ein Offset der von der Zeit abhängt. Beides ist aber relativ einfach machbar. Aus der lokalen Zeitzone kannst du per Modulo das Datum und die Uhrzeit bestimmen. Ohne größeren Aufwand wirst Du aber so oder so keinen RTC finden der genau genug geht, dass Du ihn nicht sowieso alle paar Wochen neu stellen müsstest.
DCF77. tobias p. schrieb: > RTC mit > Knopfbatterie, falls Stromausfall o.Ä. passiert :) Aktuelle Zeit über DCF77 holen. tobias p. schrieb: > Eine andere Frage ist, gibt es einen Algorithmus mit dem ich auch Sommer > und Winterzeit "berechnen" kann? Ist inkludiert.
> Das machst Du am Besten in 2 Stufen, einmal setzt Du die interne Zeit in > die lokale Zeitzone um. Das ist im einfachsten Falle ein simples Offset, > im schwierigeren Fall (mit Sommerzeit) ein Offset der von der Zeit > abhängt. Beides ist aber relativ einfach machbar. Aus der lokalen > Zeitzone kannst du per Modulo das Datum und die Uhrzeit bestimmen. sorry, das habe ich nicht so ganz verstanden kannst du das genauer erklären oder ein beispiel code zeigen? > Ohne größeren Aufwand wirst Du aber so oder so keinen RTC finden der > genau genug geht, dass Du ihn nicht sowieso alle paar Wochen neu stellen > müsstest. würde RTC8083 nicht reichen?
> DCF77.
Problem natürlich ist, wo soll ich das Modul bzw die Antenne auf der
Propellerplatine unterbringen? Ich könnte höchstens das Modul extern
irgendwo unterbringen und die daten z.B. per Bluetooth an den Propeller
senden?
Noch eine Frage, wenn ich dass mit einer internen Uhr mache, bei Stromausfall muss diese dann neu gestellt werden oder?
Naja, nehmen wir mal das Beispiel Unix. Da hast Du die Unixzeit, das sind einfach die Sekunden seit dem 1. Januar 1970 00:00:00 UTC. Sprich im Moment haben wir 1368095381 als Unixzeit. Das ist eine ganz normale Ganzzahl, die Du in C und Assembler trivial einfach verarbeiten kannst. Was Du zum Beispiel hier machen kannst ist erst mal zu schauen, um welches Jahr es sich handelt. Dazu machst Du im Prinzip so was: z=zeit jahr=1970 solange z>=jahrsekunden(jahr) jahr=jahr+1 z=z-jahrsekunden(jahr) Die Funktion jahrsekunden bestimmt die Anzahl der Sekunden im Jahr. Im Prinzip gibt das für normale Jahre 31536000 zurück, für Schaltjahre 31622400. In z ist die Sekunde des Jahres. Jetzt kannst Du zum Beispiel für alle Jahre eine Tabelle anlegen, in der drin steht wann auf die Sommerzeit umgeschaltet wird, und wann wieder zurück geschaltet wird, oder du kannst probieren diese Zeitpunkte zu berechnen. Den Wochentag kriegst Du einfach dadurch raus, in dem die Zeit durch einen Tag teilst, und dann das Ergebnis durch 7 teilst und den Rest nimmst. Sprich: Wochentag=(zeit/(24*3600))%7 Du weißt jetzt ob gerade Sommerzeit oder Winterzeit ist. Bei Winterzeit eilt die Ortszeit um eine Stunde (3600 Sekunden) vorraus, bei der Sommerzeit um 2 Stunden. (7200 Sekunden) Das addierst Du einfach zur Unixzeit, und rechnest Dir die Stunden Minuten und Sekunden aus. Wenn Du 2 Funktionen hast wie Sommerzeitanfang und Sommerzeitende, könnte das so aussehen: falls z>Sommerzeitanfang(jahr) und z<Sommerzeitende(jahr) dann lokalzeit=zeit+7200 sonst lokalzeit=zeit+3600 Tageszeit=lokalzeit%(24*3600) Stunden=Tageszeit/3600 Minuten=(Tageszeit/60)%60 Sekunden=Tageszeit%60 Wenn Du die Sommerzeiten als Array wo speicherst, kannst Du das ganze Programm in unter 20 Zeilen kriegen.
Christian Berger schrieb: > Ohne größeren Aufwand wirst Du aber so oder so keinen RTC finden der > genau genug geht, dass Du ihn nicht sowieso alle paar Wochen neu stellen > müsstest. Musst du dein Handy, PC, Backofen usw. auch alle paar Wochen neu stellen? Hab hier nen DS1307 mit externem Uhrenquarz und nach 4 Jahren Dauerbetrieb geht der ca. 5 Sekunden vor.
> Musst du dein Handy, PC, Backofen usw. auch alle paar Wochen neu > stellen? Hab hier nen DS1307 mit externem Uhrenquarz und nach 4 Jahren > Dauerbetrieb geht der ca. 5 Sekunden vor. Also würdest du mir den DS1307 empfehlen? wie sieht es mit dem PCF8583 aus?
Christian Berger schrieb: > Im > Prinzip gibt das für normale Jahre 31536000 zurück, für Schaltjahre > 31622400. Und was ist mit den Schaltsekunden?
be stucki schrieb: > Musst du dein Handy, PC, Backofen usw. auch alle paar Wochen neu > stellen? Hab hier nen DS1307 mit externem Uhrenquarz und nach 4 Jahren > Dauerbetrieb geht der ca. 5 Sekunden vor. Handy ist bei mir ein Android, das nutzt vermutlich NTP, ich beobachte nicht ob die Uhrzeit da stimmt. Der PC kriegt seine Zeit vom Videorekorder und der kriegt ein PPS-Signal vom GPS-Empfänger mein Backofen hat keine Uhr und selbst wenn würde der sich wohl an der Netzfrequenz synchronisieren. Ich hab bei mir ein paar Geräte die sich nicht synchonisieren, und die haben total falsche Zeiten.
tobias p. schrieb: > Also würdest du mir den DS1307 empfehlen? wie sieht es mit dem PCF8583 > aus? Der ist momentan bei mir im Einsatz (mehrfach) und funktioniert einwandfrei. Es gibt aber noch zig andere, die genau so gut sind (und günstiger).
Christian Berger schrieb: > Ich hab bei mir ein paar Geräte die sich nicht synchonisieren, und die > haben total falsche Zeiten. Hab da andere Erfahrungen gemacht: - Handy (ohne Internet) seit 2 Jahren: Keine Probleme - PC (ohne Internet) seit 4 Jahren: Keine Probleme - Stereoanlage (kein Internet, evt. RTC mit Netzfrequenz): Keine Probleme - Mein DS1307 hab ich schon genannt
Christian Berger schrieb: > Der PC kriegt seine Zeit vom > Videorekorder und der kriegt ein PPS-Signal vom GPS-Empfänger mein Gehts noch umständlicher?
Ich hab ADSL, darüber die Zeit einzustellen wäre noch aufwändiger, denn da ist die Latenz in beiden Richtungen unterschiedlich und ziemlich groß. (Und die ändert sich auch noch mit der Auslastung, etc) Natürlich kann man RTCs bauen, die man nicht alle paar Wochen neu einstellen muss, aber der Aufwand dafür wird schon gigantisch. 2 Wochen sind grob eine Million Sekunden. Wenn man hier jetzt einen Fehler von einer Sekunde zulässt, so braucht man schon Uhren die besser als 10⁻⁶ Fehler haben. Das ist ein ppm. Übliche RTCs haben 10 ppm. Sprich so ein 10ppm macht im Halbjahr schon fast 160 Sekunden Fehler! Das sind fast 3 Minuten. Da braucht man sich wirklich nicht mehr um das automatische Umstellen von Sommer- auf Winterzeit kümmern, da das Teil eh total falsch läuft.
Christian Berger schrieb: > Wenn man hier jetzt einen Fehler von > einer Sekunde zulässt, so braucht man schon Uhren die besser als 10⁻⁶ > Fehler haben. RTCs mit solchen geringen Fehlern kann man kaufen. Ich habe schon entsprechende Werbung gesehen, kann Dir aber momentan da keinen Link geben. Gruss Harald
Also würdest du mir von einem RTC abraten, wenn ich eine Uhr realisieren möchte die 100% richtig läuft? Um das zu realisieren was christian vorgeschlagen hat wird also nur ein uC benötigt? Kann ich trotzdem eine Knopfzelle benutzen falls es einen Stromausfall gibt?
tobias p. schrieb: > Also würdest du mir von einem RTC abraten, wenn ich eine Uhr realisieren > möchte die 100% richtig läuft? 100% richtig, ohne externe Referenz - sprich DCF77 - kannst du dir nicht leisten. RTC ist ein guter Weg. DCF wäre noch einfacher, wenn du am Aufstellungsort guten Empfang hast. > Um das zu realisieren was christian > vorgeschlagen hat vergiss es. viel zu kompliziert. > wird also nur ein uC benötigt? Nein. Du liest nicht, was er geschrieben hat. Er hat einen Computer, den er vom Videorekorder mit der Zeit versorgt, die dieser wiederrum von einem GPS Empfänger hat. Um µC kommst du sowieso nicht rum. > Das sind fast 3 Minuten im halben Jahr Oh mein Gott. 6 Minuten im Jahr! Wir werden alle sterben! Manchmal fragt man sich schon, wie die Menschheit durch die Jahrtausende gekommen ist.
Also was würdest du mir jetzt konkret für eine Propelleruhr raten die dann halbwegs (auf die 6 minuten kommt es nicht an) richtig läuft. Ein "Schutz" vor einem Stromausfall wäre auch nicht schlecht (Knopfbatterie).
>> Um das zu realisieren was christian >> vorgeschlagen hat > > vergiss es. viel zu kompliziert. was würdest du mir raten?
tobias p. schrieb: > Also was würdest du mir jetzt konkret für eine Propelleruhr raten die > dann halbwegs (auf die 6 minuten kommt es nicht an) richtig läuft. Ein > "Schutz" vor einem Stromausfall wäre auch nicht schlecht > (Knopfbatterie). Am einfachsten ist es, ein fertiger RTC mit Knopfzelle und Uhrenquarz zu verwenden. Irgendwas mit SPI oder I2C. Wenn der RTC auf dem Propeller ist, könnte es mit der Batterie jedoch schwierig werden, wegen der Unwucht. Benötigst einfach ein Gegengewicht, oder du platzierst sie in der Mitte. Wie sich ein Quarz verhält, wenn er sich so schnell dreht, bzw. beschleunigt wird, kann ich nicht sagen. Nachtrag: Oder ein uC, der bereits ein Hardware-RTC eingebaut hat, der ein "normaler" uC mit Knopfzelle, dann mit Timer und Sleep-Modus.
tobias p. schrieb: > Also was würdest du mir jetzt konkret für eine Propelleruhr raten die > dann halbwegs (auf die 6 minuten kommt es nicht an) richtig läuft. Ein > "Schutz" vor einem Stromausfall wäre auch nicht schlecht > (Knopfbatterie). Wie gesagt: wenn du guten Empfang hast, wäre DCF überlegenswert, weil da die Sommerzeit/Winterzeit Problematik schon weg ist und sich das Teil nach einem Stromausfall selbst neu synchronisiert (wenn das Programm für die Auswertung korrekt ist, selbstverständlich) Ansonsten eine RTC. Kostet nicht die Welt, und ist für den Hausgebrauch genau genug. Dei eingebaute Batterie ist für die nächsten 10 Jahre mehr als ausreichend. Wie siehts mit deinen Programmierfähigkeiten aus? Kommt mir ein wenig komisch vor, wenn jemand erst mal lang und breit fragen muss, der in der Lage ist eine Propelleruhr zu bauen und zu programmieren. Denn der hätte schon längst einfach mal mit dem normalen QUarz sich eine Uhr aufgebaut und nachgesehen ob er mit den paar Sekunden Abweichung, die er im Monat nach Abgleich erzielen kann, leben kann.
Karl Heinz Buchegger schrieb > Wie siehts mit deinen Programmierfähigkeiten aus? > Kommt mir ein wenig komisch vor, wenn jemand erst mal lang und breit > fragen muss, der in der Lage ist eine Propelleruhr zu bauen und zu > programmieren. Hatte mich bis jetzt mit dem Thema noch nicht auseinander gesetzt. Hast du vielleicht einen Tipp wie ich mittels RTC auch auf Sommerzeit und Winterzeit schließen kann?
tobias p. schrieb: > Karl Heinz Buchegger schrieb > >> Wie siehts mit deinen Programmierfähigkeiten aus? >> Kommt mir ein wenig komisch vor, wenn jemand erst mal lang und breit >> fragen muss, der in der Lage ist eine Propelleruhr zu bauen und zu >> programmieren. > > Hatte mich bis jetzt mit dem Thema noch nicht auseinander gesetzt. Hast > du vielleicht einen Tipp wie ich mittels RTC auch auf Sommerzeit und > Winterzeit schließen kann? Die Regeln rausfinden, (deine Regelsammlung da oben scheint sich mit meiner zu decken - ich hab mich allerdings nie genauer damit beschäftigt, an welchen Tagen die Umstellung vorgenommen wird) und ausprogrammieren. Lass deine interne Uhr (wenn du in diese Richtung gehen willst) ständig auf Winterzeit laufen und für die Anzeige korrigierst du die Uhrzeit je nach vorliegendem Zeitmodell.
tobias p. schrieb: > Hallo, > ich habe mich ein bisschen hier im Forum umgesehen. Habe ich richtig > verstanden,dass es drei verschiedene Möglichkeiten gibt, einen genauen > Sekundentakt zu erzeugen?? Einmal mit einem externen QUarz (RTC-Chip), > mit dem Timer vom uC aus jeder X-beliebigen Quarzfrequenz und > schließlich durch ein DCF77 Modul. Na mit einem DCF77-Modul mit Sicherheit kein Sekundentakt. Das DCF77-Signal wird Minutenweise nur ausgestrahlt und besitzt keine Sekundeninformationen ;)
ich versteht das nicht so ganz wie ich mit RTC die genaue Uhrzeit darstellen kann. ich muss doch quasi eine vorgabe machen ab der meine RTC Uhr dann weiterläuft oder nicht? quasi das was christian schon geschrieben hat
Karl Heinz Buchegger schrieb: > Lass deine interne Uhr (wenn du in diese Richtung gehen willst) ständig > auf Winterzeit laufen und für die Anzeige korrigierst du die Uhrzeit je > nach vorliegendem Zeitmodell. Ich wuerde da sogar noch weiter gehen: Lass die interne Uhr auf UTC laufen und korrigiere nach der Zeitzone. fonsana
Christian Berger schrieb: > Ich hab ADSL, darüber die Zeit einzustellen wäre noch aufwändiger, denn > da ist die Latenz in beiden Richtungen unterschiedlich und ziemlich > groß. (Und die ändert sich auch noch mit der Auslastung, etc) Kommt es auf die Mikrosekunde an? Meine Rechneruhr (Ubuntu, aber das dürfte egal sein) geht immer Sekundengenau und um Sommer- oder Winterzeit muss ich mich auch nicht kümmern.
Gibt es einen Algorightmus mit dessen Hilfe ich aus der Unixzeit die jetzige Zeit gewinnen kann?
tobias p. schrieb: > Gibt es einen Algorightmus mit dessen Hilfe ich aus der Unixzeit die > jetzige Zeit gewinnen kann? Natuerlich. fonsana
hast du vielleicht einen link am start? mit dem algorithmus + meiner RTC uhr könnte ich doch eigentlich eine relativ genaue Uhr realisieren oder?
Christian Berger schrieb: > tobias p. schrieb: > >> Eine andere Frage ist, gibt es einen Algorithmus mit dem ich auch Sommer >> und Winterzeit "berechnen" kann? > > Streng genommen nicht, da das nicht vorhersehbar ist Was ist denn nicht vorhersehbar? > und jederzeit abgeschafft oder sich ändern kann. Das wiederum ist wahr. Aber dann kann er seine Uhr ja auch ändern. Ein paar Jahre wird das sicher noch so bleiben (leider).
Christian Berger schrieb: > Ich hab ADSL, darüber die Zeit einzustellen wäre noch aufwändiger, denn > da ist die Latenz in beiden Richtungen unterschiedlich und ziemlich > groß. (Und die ändert sich auch noch mit der Auslastung, etc) Da Latenzen in der Netzkommunikation völlig normal sind werden sie im NTP Protokoll auch berücksichtigt. Zumindest die dauerhafte Variante, mit NTP-Daemon statt einfachem ntpdate, kommt auch mit Schwankungen gut zurecht, wenn man einige NTP-Server mit möglichst verschiedenen Pfaden verwendet. Allerdings ist der Internet-Ansatz für eine Propelleruhr wohl leicht übertrieben.
900ss D. schrieb: >> Streng genommen nicht, da das nicht vorhersehbar ist > > Was ist denn nicht vorhersehbar? Zukünftige politische Änderungen des Umschaltzeitpunkts, oder eine völlige Abschaffung, sind schlecht vorhersehbar. Wenn man dann nach einem Jahrzehnt und ein paar zwischenzeitlich verblichenen Rechnern noch nach dem alten Programm und der dazu passenden Entwicklungsumgebung suchen muss...
Karl Heinz Buchegger schrieb: > Die Regeln rausfinden Es gibt einfach keine - wann umgestellt wird, ist ein Regierungsbeschluss, inzwischen Beschluss der EU, und meines Wissens sogar befristet. Das kann man beim besten Willen nicht als Regel bezeichnen, es könnte ja sogar passieren dass in einem Anfall von Vernunft die Umstellung ganz abgeschafft wird. Allerdings wird es da einige Widerstände gegen Veränderungen geben, weil mit einer Änderung Abermilliarden an Uhrenchips nicht mehr korrekt funktionieren würden. Aber voraussehen was passiert kann niemand. Gruss Reinhard
hab ich das jetzt richtig verstanden, ich kann mit dem unixzeitstempel mir die aktuelle uhrzeit berechnen. so nun habe ich ja eine RTC mit der ich eine echte Sekunde realisiere. ich berechne also die aktuelle uhrzeit einmal und lass sie dann mit der RTC weiterlaufen? ist das korrekt?
Wer freilich mehr solche Basteleien vor hat, der kann sich ja einen eigenen von DCF77 oder Rechner inspirierten 433/866 MHz Zeitsender ins Haus stellen. Die Empfänger dazu sind viel kleiner und leichter als DCF77 Empfänger.
> Einmal mit einem externen QUarz (RTC-Chip), > mit dem Timer vom uC aus jeder X-beliebigen Quarzfrequenz und > schließlich durch ein DCF77 Modul. Worin liegen die Vorteile? Du brauchst sowieso den schnellen Hauptquartz um deinen Propeller zu bedienen, die ist also kostenlos. Ein externer 32kHz Quarzt braucht weniger Strom als der beliebig schnelle Haupzquartz, man könnte dann also versuchen bei Stromausfall auf Akkupufferung umzuschalten: Haupttakt aus, Propeller aus, LEDs aus, nur interne Uhr zählt weiter. Eine externe RTC kann man aus Batterien versorgen, geeignete Modelle haben dafür schon einen Anschluss, das spart Arbeit, ist aber die teuerste Lösung. > Was würdet ihr mir für eine Propelleruhr empfehlen. RTC mit > Knopfbatterie, falls Stromausfall o.Ä. passiert :) Kann man machen. > Eine andere Frage ist, gibt es einen Algorithmus mit dem ich auch Sommer > und Winterzeit "berechnen" kann? Nein, die ist politisch festgelegt und ändert sich je nach Regierung. Natürlich kannst du so weitermachen wie bisher, dann muss man eben doppelt so oft stellen wenn sich mal die Grenzen verändern.
tobias p. schrieb: > ich berechne also die aktuelle > uhrzeit einmal und lass sie dann mit der RTC weiterlaufen? Das kannst du machen wie du willst: du kannst die Uhr auf Weltzeit einstellen und für die Anzeige lokal umrechnen, im Internet und modernen Betriebssystemen wird sowieso UTC gezählt und jeweils lokalisiert angezeigt, sonst hätten deine in der Cloud in USA gespeicherten Dateien eine falsche Uhrzeit. Du kannst aber auch die Lokalzeit in der RTC zählen, das ist einfacher, aber dann ergibt sich das Problem eben beim Verlassen der Zeitzone. Hast du einen Spezial-RTC-Chip, so ist das Zeit- und Datumsformat normalerweise vorgegeben, ein Register für die Sekunde usw. Lässt du in einem allgemeinverwendbaren MComputer die Zeit mitlaufen, kannst du natürlich auch Unix-Sekunden zählen und bei Abfrage umwandeln. I.A. sind spezielle Chips optimiert auf Batteriebetrieb, brauchen weniger Strom als ein normaler µC (die meisten kommen deshalb schon garnicht in Frage) und laufen daher länger mit einer Knopfzelle. Gruss Reinhard
Es gibt keine "Winterzeit". Während die Sommerzeit um eine Stunde verschoben ist, ist die "Winterzeit" die ganz normale, richtige MEZ.
tobias p. schrieb: > ich versteh nicht wie ich das programmiertechnisch hinbekommen soll In dem Fall würde ich zu einem externen RTC-Chip raten, die muss man zwar auch richtig ansprechen, aber du setzt einmal die korrekte Zeit und gibst den Chip frei, dann läuft er von selbst wie deine Armbanduhr, notfalls jahrelang, und wenn du es brauchst fragst du den aktuellen Zählerstand ab. Einen µC so zu progammieren, dass er die Zeit auch ohne Stromversorgung korrekt weiterzählt dürfte für deine Kenntnisse nicht realisierbar sein. Gruss Reinhard
ahh ok, vielen dank reinhard. und wie bekomm ich das problem mit der sommerzeit hin?
tobias p. schrieb: > ahh ok, vielen dank reinhard. und wie bekomm ich das problem mit der > sommerzeit hin? Indem du mal selber was machst und dir entsprechende Chips anschaust. Dann wirst du die Antwort finden. Im Datenblatt.
tobias p. schrieb: > Gibt es einen Algorightmus mit dessen Hilfe ich aus der Unixzeit die > jetzige Zeit gewinnen kann? Ja, siehe den 2. Post hier. Was eventuell noch eine Möglichkeit wäre, wäre es einen Synchronmotor zu verwenden, bei dem die Drehzahl Netzsynchron ist. Da Du eh die Position irgendwie bestimmen musst, kriegst Du so auch die Netzfrequenz mit. Die Netzfrequenz ist im Mittel genau 50 Hz, die maximale Phasenabweichung liegt bei +-20 Sekunden oder so.
tobias Hast du eigentlich schon mal irgendein Programm geschrieben? Wenn nicht, dann leg momentan deine Propelleruhr ad acta und fang erst mal damit an programmieren zu lernen. Denn so hat das momentan keinen Sinn. Etwas bauen zu wollen, ist zu wenig.
qwertz schrieb: > Kommt es auf die Mikrosekunde an? Meine Rechneruhr (Ubuntu, aber das > dürfte egal sein) geht immer Sekundengenau und um Sommer- oder > Winterzeit muss ich mich auch nicht kümmern. Naja, wenn mein ADSL 5ms im Downstream und 15ms im Upstream hat, dann kann NTP das nur als eine Laufzeit von 20 ms sehen, und stellt sich die Uhr um 5 ms falsch ein. NTP geht immer von symmetrischen Laufzeiten aus. Der GPS-Empfänger ist übrigens im Moment abgebaut, weil ich umziehen muss, aber als der lief hatte ich die Zeit grob auf eine Mikrosekunde genau, das reicht für praktische Anwendungen. :)
tobias p. schrieb: > Hast du vielleicht einen Tipp wie ich mittels RTC auch auf Sommerzeit und > Winterzeit schließen kann? Wie soll man mittels RTC auf Sommer- oder Winterzeit schließen können. Die Zeitpunkte für die Umstellung sind nicht mal in einem Gesetz geregelt. Wenn irgend ein Hansel in Berlin auf die Idee kommt, dass die Verordnung zum Umstellzeitpunkt mal wieder geändert werden soll, steht deine RTC im Dunkeln.
Michael Köhler schrieb: > > > Na mit einem DCF77-Modul mit Sicherheit kein Sekundentakt. Das > DCF77-Signal wird Minutenweise nur ausgestrahlt und besitzt keine > Sekundeninformationen ;) Stimmt nicht. Alle 60 Sekunden kommt die Information, dass dies die 60. Sekunde ist. Damit (und mit einem billigen Quarz) bekommt man eine Abweichung <1s hin.
Der Aufwand der Zeitumstellung lohnt sich für einen RTC auch nicht, weil man die Zeit eh viel öfter nachstellen müsste. Da solche Propeller-Uhren eh keine wirklich praxistauglichen Geräte sind, würde ich einfach vorstellen die Uhrzeit über eine Art DDS zu bestimmen. Sprich man hat eine 64 oder 128 Bit Zahl die man jede Sekunde erhöht. Die zählt dann bis auf einen Tag hoch und wird dann um den Tag verringert. Daraus berechnet man die Stunden Minuten und Sekunden. Der große Vorteil daran ist, dass man den Wert um den man die Zahl erhöht sehr leicht einstellen kann und somit den Fehler des Quarzes mit wenig Aufwand ausgleichen kann. (dann hat man immer noch Drift und so was, dafür ist es halt billg) Im Code wäre das dann ungefähr so: Konstanten: Minutendauer=Sekundendauer*60 Stundendauer=Minutendauer*60 Tagesdauer=Stundendauer*24 ISR vom Timer aufgerufen (z.Bsp. einmal pro Sekunde) zeit=zeit+(Sekundendauer+Korrektur) falls zeit>=Tagesdauer dann zeit=zeit-Tagesdauer stunden=(zeit/Stundendauer) modulo 24 minuten=(zeit/Minutendauer) modulo 60 sekunden=(zeit/Sekundendauer) modulo 60 Sekundendauer sollte so gewählt werden, dass die Tagesdauer noch im Wertebereich der Variable zeit liegt. Den Korrekturfaktor bestimmst du wie folgt. Du stellst den erst mal Korrektur auf 0, stellst dann die Uhr ein. Dann lässt Du die eine Zeit lang laufen, bis der Zeitfehler leicht messbar ist, Du bestimmst den, und teilst den durch die Zeit die Du gewartet hast. Das multiplizierst du mit Sekundendauer und schon hast du den Korrekturwert. Wenn Du das mit Batterie betreiben willst, dann schau einfach regelmäßig nach ob der Motor läuft, wenn nein, dann lässt du alle LEDs aus und zählst einfach die Zeit weiter. Wenn Du nur den Timer laufen lässt und Dich in der Hauptschleife einfach nur immer schlafen legst läuft das Teil auch ziemlich lang mit Batterie.
Roland schrieb: > Michael Köhler schrieb: >> Na mit einem DCF77-Modul mit Sicherheit kein Sekundentakt. Das >> DCF77-Signal ---besitzt keine >> Sekundeninformationen ;) > > Stimmt nicht. Alle 60 Sekunden kommt die Information, dass dies die 60. > Sekunde ist. Damit (und mit einem billigen Quarz) bekommt man eine > Abweichung <1s hin. Nein, das DCF-77 Signal überträgt ein Bit and Daten pro Sekunde. Zum einen über die Amplitudenmodulation (Unsicherheit so grob 10 ms) bei der die Amplitude zum Anfang jeder Sekunde verringert wird, und dann zu einem datenabhängigen Zeitpunkt wieder erhöht wird. Zum anderen über das phasenmodulierte Signal, das sich jede Sekunde wiederholt und das meines Wissens nach einmal positiv und einmal negativ übertragen wird. In beiden Fällen kann man den Sekundenanfang bestimmen weil der bei jeder Sekunde übertragen wird. Die Ausnahme ist die Sekunde 60/0 bei der der Impuls in der Amplitudenmodulation ausgelassen wird. (was die Phasenmodulation da macht weiß ich nicht)
Das Rad bzw. die µC Uhr muss doch nicht jedes Mal neu erfunden werden Beitrag "Die genaue Sekunde / RTC"
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.