Am Puls der Zeit: Unterschied zwischen den Versionen
Veyron (Diskussion | Beiträge) |
Habo (Diskussion | Beiträge) |
||
Zeile 65: | Zeile 65: | ||
[[Category:StepByStep]] | [[Category:StepByStep]] | ||
[[Category:Clock]] | [[Category:Clock]] | ||
+ | [[Category:Network]] |
Version vom 10. Juli 2009, 20:30 Uhr
Inhaltsverzeichnis
Ethersex am Puls der Zeit
Viele Mikrocontroller-Projekte kommen irgendwann an den Punkt, wo eine (halbwegs) verlässliche Zeitquelle von Nöten ist. Sei es, dass man um eine bestimmte Uhrzeit eine Lampe schalten möchte, die Heizungssteuerung morgens für Warmwasser sorgen soll oder dass man alle halbe Stunde einen Messwert speichert ...
Wie könnte es anders sein, Ethersex bietet hierfür eine elegante Lösung: eine Systemuhr :-)
make menuconfig Applications ---> System clock ---> | | [*] System clock support | | | [ ] Use 32 kHz crystal to tick the clock | | | [*] Synchronize using NTP protocol | | | [*] Cron daemon | | | [ ] NTP daemon | | | [ ] Working hour meter | | | (UTC) Time Zone | |
Der Uhrentakt
Wenn irgendwie möglich, solltest Du Deinem Ethersex einen Uhrenquarz mit einer Taktfrequenz von 32 kHz spendieren (an die Pins TOSC1 resp. TOSC2 anschließen, im Falle des ATmega644 sind das PC6 und PC7) und die Option Use 32 kHz crystal to tick the clock aktivieren. Die Systemuhr läuft mit dem Uhrenquarz erheblich genauer.
Ohne dem Quarz wird der Systemtakt als Quelle herangezogen. Dieser ist aber im Vergleich weit weniger genau.
Zeitquellen
Selbstverständlich muss sich die Uhr selbst stellen. Der Controller wäre weitestgehend nutzlos wenn jedesmal die Uhr per Hand eingestellt werden müsste. Ethersex sieht hierzu im Moment zwei Lösungsansätze vor:
Synchronisation mittels NTP
Ethersex kann als NTP-Client einen Zeitserver im Internet nach der Uhrzeit fragen. Hierzu ist lediglich die Option Synchronize using NTP protocol zu aktivieren. Die Firmware frägt dann nach dem Boot und anschließend in regelmäßigen Abständen den folgenden Zeitserver:
address type | DNS aktiviert | ohne DNS Unterstützung |
IPv6 | time6.ipv6.uni-muenster.de | 2001:638:500:101::2e0:4bff:fe04:bc5f |
IPv4 | pool.ntp.org | 213.133.123.125 |
Die standardmäßig festgelegten Server können in der Datei 'ntp/ntp.h' aber auch abgeändert werden.
DCF77
Die Ethersex-Firmware kann auch als DCF77-Empfänger (besser bekannt als "Funkuhr") fungieren. Hierzu ist zunächst ein Uhrenquarz anzuschließen und die zugehörige Option zu aktivieren, vgl. oben. Dann muss die Option Synchronize using DCF77 signal aktiviert werden. Funktionstüchtige (Empfangs-)hardware und guten Empfang vorausgesetzt, sollte die Uhr nun automatisch gestellt werden.
Siehe auch DCF77
Zeitinformationen verwenden
Cron
Ethersex hat einen Cron-Dienst ähnlich dem Dienst auf typischen Unix-Systemen. Dieser kann verwendet werden, um zu bestimmten Uhrzeiten bestimmte Tätigkeiten verrichten zu lassen.
Die Jobtabelle selbst findet sich in der Datei cron/cron.c ziemlich am Anfang. Es ist auch ein Beispieljob eingetragen. Selbstverständlich sind hierzu dann zumindest rudimentäre Programmierkenntnisse in C erforderlich %)
Eine (einfachere) Alternative wäre evtl. der Einsatz eines ((6Control)) Programms.
NTP-Server
Die Ethersex Firmware kann die so gewonnenen Zeitinformationen als NTP-Server auch im lokalen Netzwerk zur Verfügung stellen. Hierzu ist lediglich die Option NTP daemon zu aktivieren.