所有RTC都使用BCD编码吗?
Philips / NXP的RTC(既独立又集成到ARM7或Cortex-M3芯片中)都不使用BCD编码。
BCD RTC有什么问题?
与平面计数器相比,使用BCD分离时钟时唯一困难的操作是时间差计算(增加秒数或计算经过的时间)。时间比较就像:“当前时间是否大于用户设置的警报时间”一样容易。
BCD(通常是分场)RTC有什么好处?
当您关心日历日期时,拆分字段真的很好。人类日历上有有趣的事情,例如不同长度的月份以及leap年。尝试在单个计数器中执行此操作(由于几乎不使用电源,您可以获得奖励积分)。哦,并尝试以此支持工作日(在对人类有意义的各种设备中都很有用:从闹钟到加热器控制器)。
BCD方法还有一个附加功能:您可以免费获得“每秒”或“每十秒钟”的中断,而无需对时间或日期进行任何计算。
对于创纪录的leap年计算,恩智浦RTC中的计算有点差,因为它只关心4分法,而不检查100和400的除法。如果将年份保留在BCD中,这将是微不足道的,并且很可能是做得对。
摘要
如果您想要单调时钟,请使用一个。您可以购买带有“ RTC计数器”(这只是具有自主32kHz振荡器的异步计数器)的PIC或AVR。请记住,仅显示日期将很困难。:)
当需要显示时间和日期并根据用户输入的时间和日期设置警报时,请使用RTC。请记住,当用户更改当前时间和日期时,基于RTC的中断可能不准确。