Suponho que o RTC seja um chip separado com seu próprio cristal ou um módulo integrado ao seu microcontrolador que novamente tenha uma fonte de tempo separada (como um cristal de 32 kHz) que o relógio principal. E a fonte de tempo para o RTC é mais precisa do que a fonte para o microcontrolador.
Para determinar com que frequência você precisa ler o RTC, precisa descobrir qual o erro máximo que seu relógio principal pode ter. Por exemplo, se o cristal principal for especificado em 20 ppm, será igual a 0,002%. Portanto, um relógio baseado apenas na fonte principal de relógio pode derivar 0,00002 * 3600 * 24 = 1,728 segundos por dia.
Portanto, se você ler o RTC apenas duas vezes por dia e aumentar o tempo uma vez por segundo usando uma interrupção do temporizador, você nunca estará desligado por mais de um segundo - nunca estará desligado por mais de um segundo em comparação com o RTC.
Se, como assumi anteriormente, o seu RTC é um chip separado com seu próprio cristal ou um módulo integrado ao seu microcontrolador, isso não significa que esteja correto. Um RTC também pode ter um erro. Por exemplo, se estiver usando um cristal de 32 kHz com uma tolerância de 5 ppm (que são apenas um pouco mais caras que 10 ppm), ele poderá ser desligado em 0,43 segundos por dia - ou 13 segundos por mês.
Para contornar isso, você precisará ajustar o RTC, onde escreve um fator de correção em um registro. Isso permitirá que você obtenha o erro praticamente zero. Mas é claro que você precisará ter uma terceira fonte de relógio externa para usar como referência ao fazer o ajuste. Uma referência extremamente precisas nos EUA é a linha 60 Hz CA, que está garantido para ser exactamente 60 * 60 * 60 * 24 (5,184,000) ciclos num período de 24 horas entre midnights sucessivas. Para que isso seja útil, é necessário tempo para as 24 horas inteiras, pois os 60 Hz podem variar entre meia-noite.
Outra referência de tempo excelente seria usar GPS (precisão de 10 ns), se já houvesse hardware GPS em seu projeto.
Se, em vez disso, o horário do RTC vier de uma fonte externa, como o horário da rede celular (chamada AT + CCLK?) Ou um servidor de horário da rede usando NTP, você poderá usar o valor do RTC como está, pois não haverá nada para "ajustar" .