Я предполагаю, что RTC - это либо отдельный чип с собственным кристаллом, либо модуль, интегрированный с вашим микроконтроллером, который снова имеет отдельный источник времени (например, кристалл 32 кГц), чем основные часы. И источник времени для RTC является более точным, чем источник для микроконтроллера.
Чтобы определить, как часто вам нужно читать RTC, вам нужно выяснить, какую максимальную ошибку могут иметь ваши основные часы. Например, если основной кристалл определен в концентрации 20 частей на миллион, это равно 0,002%. Таким образом, часы, основанные только на основном источнике часов, могут отклоняться от 0,00002 * 3600 * 24 = 1,728 секунды в день.
Таким образом, если вы читаете RTC только два раза в день, а между тем увеличиваете время раз в секунду, используя прерывание по таймеру, вы никогда не будете выключены более чем на секунду - никогда не будете выключены более чем на секунду по сравнению с RTC, которое есть.
Если, как я предполагал ранее, ваш RTC - это либо отдельный чип с собственным кристаллом, либо модуль, интегрированный с вашим микроконтроллером, это не значит, что он правильный. RTC тоже может иметь ошибку. Например, если он использует кристалл 32 кГц с допуском 5 промилле (который чуть дороже, чем 10 промилле), он может быть отключен на 0,43 секунды в день или 13 секунд в месяц.
Чтобы обойти это, вам нужно будет настроить RTC, где вы записываете поправочный коэффициент обратно в регистр. Это позволит вам свести ошибку практически к нулю. Но, конечно, вам понадобится третий внешний источник синхронизации, который будет использоваться в качестве эталона при настройке. Чрезвычайно точным эталоном в США является линия переменного тока с частотой 60 Гц, которая гарантированно будет составлять ровно 60 * 60 * 60 * 24 (5 184 000) циклов в течение 24 часов между последовательными ночами. Чтобы это было полезно, вы должны рассчитывать на все 24 часа, так как 60 Гц может дрейфовать между ночами.
Еще одна отличная временная привязка - использование GPS (с точностью до 10 нс), если в его проекте уже есть оборудование GPS.
Если вместо этого ваше время RTC поступает из внешнего источника, такого как время сотовой сети (вызов AT + CCLK?) Или сервер времени сети, использующий NTP, то вы можете использовать значение RTC как есть, поскольку «настраивать» будет нечего ,