Я припускаю, що 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 (5184000) циклів за 24 години між послідовними опівночі. Щоб це було корисно, потрібно витратити цілі 24 години, оскільки 60 Гц можуть переносити між півночі.
Ще однією чудовою орієнтацією на час було б використання GPS (точність 10 нс), якщо у вашому проекті вже було обладнання GPS.
Якщо замість того, що ваш RTC час надходить із зовнішнього джерела, наприклад, часу стільникової мережі (AT + CCLK? Виклик) або мережевого сервера часу з використанням NTP, ви можете використовувати значення RTC так, як "налаштування" не буде нічого. .