Je vais supposer que le RTC est soit une puce distincte avec son propre cristal, soit un module intégré à votre microcontrôleur qui a encore une source de temps distincte (comme un cristal 32 kHz) que l'horloge principale. Et la source de temps pour le RTC est plus précise que celle du microcontrôleur.
Pour déterminer la fréquence à laquelle vous devez lire le RTC, vous devez déterminer quelle erreur maximale peut avoir votre horloge principale. Par exemple, si le cristal principal est spécifié à 20 ppm, cela équivaut à 0,002%. Ainsi, une horloge basée uniquement sur la source d'horloge principale pourrait dériver 0,00002 * 3600 * 24 = 1,728 secondes par jour.
Donc, si vous ne lisez le RTC que deux fois par jour, et entre le temps incrémenté une fois par seconde en utilisant une interruption de minuterie, vous ne serez jamais éteint plus d'une seconde - ne serez jamais éteint plus d'une seconde par rapport au RTC qui est.
Si, comme je l'ai supposé plus tôt, votre RTC est soit une puce séparée avec son propre cristal, soit un module intégré à votre microcontrôleur, cela ne signifie pas qu'il est correct. Un RTC peut aussi avoir une erreur. Par exemple, s'il utilise un cristal de 32 kHz avec une tolérance de 5 ppm (qui sont juste un peu plus chers que ceux de 10 ppm), il pourrait être éteint de 0,43 seconde par jour - ou 13 secondes par mois.
Pour contourner ce problème, vous devrez régler le RTC, où vous écrivez un facteur de correction dans un registre. Cela vous permettra d'obtenir l'erreur pratiquement à zéro. Mais bien sûr, vous devrez avoir une troisième source d'horloge externe à utiliser comme référence lors du réglage. Aux États-Unis, une référence extrêmement précise est la ligne à 60 Hz CA, qui est garantie d'être exactement 60 * 60 * 60 * 24 (5 184 000) cycles sur une période de 24 heures entre les minuit successifs. Pour que cela soit utile, vous devez chronométrer pendant les 24 heures entières, car le 60 Hz peut en dériver entre les minuit.
Une autre excellente référence temporelle serait l'utilisation du GPS (précision 10 ns), si l'on avait déjà du matériel GPS dans son projet.
Si, à la place, vos heures RTC proviennent d'une source externe, comme l'heure du réseau cellulaire (appel AT + CCLK?), Ou d'un serveur de temps réseau utilisant NTP, vous pouvez utiliser la valeur RTC telle quelle car il n'y aura rien à "régler". .