@Stefan,
"interne timer in embeddet systems sind eben keine präzisionsuhren. was
spricht gegen eine externe rtc?"
Ganz im Gegenteil !
Sie sind wie jeder digitale Teiler hochgenau.
Die Rechnung mit gebrochenen Zahlen sollte nur verdeutlichen, daß
niemand merken kann, ob da ein paar Takte an einer Sekunde fehlen.
Deshalb reicht es für RTC-Anwendungen völlig aus, wenn man in 1/60
(Minutenkorrektur), 1/3600 (Stundenkorrektur) oder 1/86400
(Tageskorrektur) Schritten hochgenau korrigiert.
Zu den RTC ist zu sagen, daß Quarze mit hoher Frequenz stabiler und
weniger temperaturabhängig sind. D.h. eine Uhr mit 11MHz ist immer
genauer als eine mit 38kHz.
Deshalb hat eine externe RTC ausschließlich dann eine Berechtigung, wenn
die Zeit bei Netzausfall über eine Batterie oder einen Elko
weitergezählt werden soll, da typischer Weise ein MC mehr Strom benötigt
als eine externe RTC (z.B. DS1338 = 400nA).
Ich bevorzuge meistens einen freilaufenden Timer (Interrupts alle 256,
8192 oder 65536 Zyklen), da ich dann nicht mehr die Rechenzeit für das
Software-Reload berücksichtigen muß.
Ich kann also in C programmieren ohne dann im erzeugten Assemblerkode
die benötigten Befehlszyklen addieren und abziehen zu müssen.
Peter