松翰单片机 RTC 应用注意的问题

[复制链接]
查看3809 | 回复0 | 2017-2-22 11:22:18 | 显示全部楼层 |阅读模式
  有部分 SN 单片机型号的芯片,内部带有 RTC 功能(实时时钟),它为双时钟芯片的一大特色!也为需要使用 RTC 的项目提供了方便.我曾经使用过 SN8P2501A/B,SN8P2308,SN8P2612/13(早期版本),sn8p2614等芯片的 RTC 功能,效果都不错.应用 RTC 需要注意的问题:

(1).代码选项必须选择:IHRC_RTC.同时,硬件上在芯片接外部晶体的位置接上 32768HZ 的时钟晶体,精度尽量使用好一些的.推荐 ±5ppm 的.不要使用便宜货或者玩具里使用的晶体品种.

(2).实时时钟大多占用定时器 T0 的资源,必须置位 T0M 的 T0TB 位(T0M.0=1).无需对 T0C 赋值.记得一定要启动定时器:置位 T0M.7(T0ENB=1).
在 SN2501B 数据手册里提示:

注:

1. 在RTC 模式下,进入中断之后必须经过1/2 RTC(32768HZ),即16us 的延时后才能对T0IRQ 清零;

2. 在RTC 模式下,T0 间隔时间固定为0.5s,T0C 计数范围也固定为256 。

3.可以使用中断或者轮训来处理实时时钟的信息.及时对 T0C 计数器的溢出标志 T0IRQ  (也是中断标志)清零.-----这个清零有点古怪,必须经过 16us 后才可以清零 T0IRQ !否则实时时钟会出错!

例如内部 16MHZ RC 振荡器/4 ).
       BTS1          FT0IRQ
        JMP          Z_CT0IRQ  ;退出
        MOV_           R,#64;64*0.25=16us  ;延时16uS
        DECMS   R
        JMP           $-1
       BCLR          FT0IRQ
FT0IRQ:    ;退出
;.....................................................
如果判断 FT0IRQ 后有其它指令需要执行,例如置位一些 0.5S 到达的标志,则可以减少 16uS 的延时数值.
(4).RTC 具有唤醒功能,对掉电保护特别有用,可以进入绿色模式前,确保 RTC 是有效的(T0ENB=1).每隔 0.5S 系统自动唤醒一次.
您需要登录后才可以回帖 登录 | 注册

本版积分规则