Ich gehe davon aus, dass die RTC entweder ein separater Chip mit einem eigenen Kristall oder ein in Ihren Mikrocontroller integriertes Modul ist, das wiederum eine separate Zeitquelle (z. B. einen 32-kHz-Kristall) als die Hauptuhr hat. Und die Zeitquelle für die RTC ist genauer als die für den Mikrocontroller.
Um festzustellen, wie oft Sie die RTC lesen müssen, müssen Sie herausfinden, welchen maximalen Fehler Ihre Hauptuhr haben kann. Wenn zum Beispiel der Hauptkristall mit 20 ppm spezifiziert ist, entspricht dies 0,002%. Eine Uhr, die nur auf der Hauptuhrquelle basiert, kann also 0,00002 * 3600 * 24 = 1,728 Sekunden pro Tag driften.
Wenn Sie also die RTC nur zweimal am Tag lesen und dazwischen die Zeit einmal pro Sekunde mithilfe eines Timer-Interrupts erhöhen, sind Sie nie länger als eine Sekunde ausgeschaltet - im Vergleich zur RTC also nie länger als eine Sekunde.
Wenn Ihre RTC, wie ich zuvor angenommen habe, entweder ein separater Chip mit eigenem Kristall oder ein in Ihren Mikrocontroller integriertes Modul ist, bedeutet dies nicht, dass sie korrekt ist. Eine RTC kann auch einen Fehler haben. Wenn beispielsweise ein 32-kHz-Kristall mit einer Toleranz von 5 ppm verwendet wird (die nur geringfügig teurer sind als 10 ppm), kann er um 0,43 Sekunden pro Tag oder 13 Sekunden pro Monat ausgeschaltet sein.
Um dies zu umgehen, müssen Sie die RTC einstellen, wobei Sie einen Korrekturfaktor in ein Register zurückschreiben. Auf diese Weise können Sie den Fehler praktisch auf Null bringen. Aber natürlich müssen Sie eine dritte externe Taktquelle haben, die Sie als Referenz für die Abstimmung verwenden können. Eine äußerst genaue Referenz in den USA ist die 60 - Hz - Wechselstromleitung, welches garantiert werden genau 60 * 60 * 60 * 24 (5.184.000) Zyklen in einem 24 - Stunden - Zeitraum zwischen aufeinanderfolgenden midnights. Damit dies nützlich ist, müssen Sie die gesamten 24 Stunden Zeit haben, da die 60 Hz zwischen den Mitternächten etwas abweichen können.
Eine weitere hervorragende Zeitreferenz wäre die Verwendung von GPS (10 ns Genauigkeit), wenn bereits GPS-Hardware in ihrem Projekt vorhanden wäre.
Wenn Ihre RTC-Zeiten stattdessen von einer externen Quelle stammen, z. B. der Mobilfunknetzzeit (AT + CCLK? Call), oder von einem Netzwerkzeitserver, der NTP verwendet, können Sie den RTC-Wert unverändert verwenden, da nichts zu "optimieren" ist. .