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