有关实时钟读取的偏方 作者:时间:2012-06-29来源:网络收藏 目前多用IIC等串行输出的实时钟而大多MCU无硬件IIC,只能通过IO模拟,如果每秒读一次占用MCU也不算少,即使带硬件IIC(C8051F02X等)采用中断处理因对IIC状态标志的判断散转也要若干时间。在大部分情况下,可以有个省事的处理方式:只在复位后读一次完整时间数据,此后时间更新通过MCU定时器(必须设置为自动重装方式以获得与晶体稳定度一致的精确度),如果对读一次的数据不放心,可以通过判断包含FF等非法数据来重读(按我体会,数据错读的都是FF,而重读基本无必要,因为大多是RTC内部数据已被冲坏了),也可用多次读方式(个人觉得象画蛇添足,我从未这样处理)。当使用MCU的定时器来处理时间,花费比IIC要省的多,如果仪器每天都开关,第二天开机获得的时间是由RTC自己维持运行的数据。如果你要连续工作一个月以上,可能程序上要处理大小月等问题,或是每当MCU计到23时01分重读一次RTC(最好避免在整24时,因可能涉及日、月、年的更新)。附带说:MCU定时器自动重装方式精度与晶体稳定度一致,无累积误差。也可采取每分钟或每小时读一次方式,期间计时仍然由MCU处理。
评论