有部分 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 !不然实时时钟会犯错!
运用 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
例如内部 16MHZ RC 振荡器/4 ).
FT0IRQ:
;……………………………………………..
假如判别 FT0IRQ 后有其它指令需求履行,例如置位一些 0.5S 抵达的标志,则能够削减 16uS 的延时数值.
(4).RTC 具有唤醒功用,对掉电维护特别有用,能够进入绿色形式前,保证 RTC 是有用的(T0ENB=1).每隔 0.5S 体系主动唤醒一次.