Asumiré que el RTC es un chip separado con su propio cristal, o un módulo integrado con su microcontrolador que nuevamente tiene una fuente de tiempo separada (como un cristal de 32 kHz) que el reloj principal. Y la fuente de tiempo para el RTC es más precisa que la del microcontrolador.
Para determinar con qué frecuencia necesita leer el RTC, debe averiguar cuál es el error máximo que puede tener su reloj principal. Por ejemplo, si el cristal principal se especifica a 20 ppm, eso es lo mismo que 0.002%. Por lo tanto, un reloj basado únicamente en la fuente del reloj principal podría derivar 0.00002 * 3600 * 24 = 1.728 segundos al día.
Entonces, si lee el RTC solo dos veces al día, y en el medio incrementa el tiempo una vez por segundo usando una interrupción del temporizador, nunca estaría apagado más de un segundo, nunca estará apagado más de un segundo en comparación con el RTC que es.
Si, como supuse anteriormente, su RTC es un chip separado con su propio cristal o un módulo integrado con su microcontrolador, eso no significa que sea correcto. Un RTC también puede tener un error. Por ejemplo, si está utilizando un cristal de 32 kHz con una tolerancia de 5 ppm (que son un poco más caras que las de 10 ppm), podría estar apagado en 0,43 segundos por día, o 13 segundos por mes.
Para evitar esto, deberá ajustar el RTC, donde debe escribir un factor de corrección en un registro. Hacerlo te permitirá llevar el error prácticamente a cero. Pero, por supuesto, tendrá que tener una tercera fuente de reloj externa para usar como referencia cuando realice la sintonización. Una referencia extremadamente precisa en los EE. UU. Es la línea de CA de 60 Hz, que se garantiza que será exactamente 60 * 60 * 60 * 24 (5,184,000) ciclos en un período de 24 horas entre sucesivas noches de medianoche. Para que esto sea útil, debe tomarse el tiempo durante las 24 horas completas, ya que los 60 Hz pueden variar entre la medianoche.
Otra excelente referencia de tiempo sería usar GPS (precisión de 10 ns), si uno ya tuviera hardware de GPS en su proyecto.
Si, en cambio, sus tiempos de RTC provienen de una fuente externa, como la hora de la red celular (llamada AT + CCLK?) O un servidor de tiempo de la red que usa NTP, entonces puede usar el valor de RTC tal como está ya que no habrá nada que "ajustar" .