微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430F5529 (八)实时时钟RTC

MSP430F5529 (八)实时时钟RTC

时间:11-28 来源:互联网 点击:

RT0IP:预分频器0中断间隔。

000-111,分别表示2、4、8、16、32、64、128、256分频

RT0PSIE:预分频定时器0中断允许

0:中断不允许

1:中断允许

RT0PSIFG:预分频定时器0中断标志

0:没有定时事件发生

1:有定时事件发生

RTCPS1CTL预分频定时器1控制寄存器(16位寄存器)

RT1SSEL:预分频定时器1时钟源选择位。选择时钟源输入到RT1PS计数器。在RTC日历模式该位不用关心,因为RT1PS时钟输入自动设置为RT0PS的输出。

00:ACLK

01:SMCLK

10:从RT0PS输出

11:从RT0PS输出

(其余项同RTCPS0CTL)

上面的都为控制寄存器,操作比较复杂,下面讲到的都是数值寄存器。

RTCNT1:RTC计数寄存器1,计时器模式

RTCNT2:RTC计数寄存器2,计数器模式

RTCNT3:RTC计数寄存器3,计数器模式

RTCNT4:RTC计数寄存器4,计数器模式

RTCSEC:秒寄存器。BCD/BIN

先说明一下BCD/BIN的意思(下面同理)

前面提到可以控制日历模式的数值寄存器中的数值用BCD码或者二进制码表示。以RTCSEC为例:

当选作二进制模式时:(低6位就可以表示秒1-60)

当选作BCD模式时:(低4位表示秒的各位0-9;4-6位表示秒的十位0-6,高位不用时默认为0)

RTCMIN:分寄存器,BCD/BIN

RTCHOUR:时寄存器,BCD/BIN

RTCDOW:星期日数寄存器,因为只有1-7,所以无所谓BCD/BIN了

RTCDAY:日寄存器,BCD/BIN

RTCMON:月寄存器,BCD/BIN

RTCYEARL:年低字节寄存器,个年位以及十年位,BCD/BIN

RTCYEARH:年高字节寄存器,百年位以及千年位,BCD/BIN

RTCAMIN:分闹铃寄存器,BCD/BIN

RTCAHOUR:时闹铃寄存器,BCD/BIN

RTCADOW:星期闹铃寄存器

RTCADAY:日闹铃寄存器,BCD/BIN

//上述4个闹钟寄存器的最高位都为使能位AE,置位时相应寄存器才有效

RT0PS:预分频定时器0计数值

RT1PS:预分频定时器1计数值

RTCIV:中断向量值寄存器(16位寄存器)

8.3RTC的各种操作流程

8.3.1计时器模式

(1). RTCMODE位置0,进入32位计时器模式;

从日历模式切换到计数器模式会将计数值寄存器(RCTNT1,RCTNT2,RCTNT3,RCTNT4)和预换算计数器(RT0PS,RT1PS)全部清零

(2). 选择时钟源,并设计二级分频;

计数器的时钟可源于ACLK、SMCLK或者是RT1PS的输出。当使用RT1PS的输出作为计数源的时候,一定要先将RT0PS,RT1PS的HOLD位清零,使其可以正常工作,然后再分别配置二者的分频数。

再者,两个预分频器RT0PS和RT1PS也可以作为独立的计数器来用(级联成16位也是可以的)。通过RT0IP和RT1IP可以设置间隔。比如,选择ACLK 32768HZ作为时钟,间隔设置为256,也就是说每当计数器计到32768/256=128的整数倍时,该标志位就会置位。

(3). 32位计数器是由4个8位计数器级联而成,这能提供8位、16位、24位、32位溢出间隔。RTCTEV位选择触发哪一个溢出间隔,通过设置RTCTEVIE位,一个RTCTEV发生能够触发一个中断。计数器RTCNT1到RTCNT4,每一个都可以单独的访问,并可能被写入。

(4). 如何关闭计数器。

为了简单一点,把所有HOLD位都置位,则可以保证在任何情况下都可以关闭32位计数器。

注意:对计数值寄存器写时,立即生效。

读时,如果该时钟与CPU时钟不同步,则需要暂停计数器来读数。或者通过多次读取,来软件判断哪个是正确值。

8.3.2 日历模式

当RTCMODE置位的时候,日历模式就被选中了。在日历模式中,实时时钟模块可选择以BCD码或者是十六进制提供秒、分、小时、星期、日期、月份和年份。日历会自动计算是否是闰年,这个算法可以精确到1901年到2099年。

(1). 时钟和预分频。

RT0PS必须源于ACLK,ACLK必须是32768Hz,。 RT0PS会自动进行256分频,然后其输出再接RT1PS,RT1PS在被自动128分频,最后提供的时钟信号就是间隔一秒了。从计数器模式切换到日历模式时,会将秒、分、小时、星期、年份全部置清零,会将日期和月份全部置1。另外,RT0PS和RT1PS也会被清零。(这里把这些状态暂定义为默认复位状态)

(2). 日历寄存器编码格式。

当RTCBCD=1时,日历寄存器就会被选为BCD码格式。必须在时间设置之前选择好格式。改变RTCBCD的状态会使进入默认复位状态。

在日历模式下,RT0SSEL、RT1SSEL、RT0PSdiv、RT1PSdiv、RT0PSHOLD、RT1PSHOLD和RTCSSEL 位都可以被忽略。置位RTCHOLD则会停止实时计数器、分频计数器和RT0PS、RT1PS。

(3). 灵活的闹钟

用户可编程闹钟功能只有在日历模式运行的时候才有效。

每一个闹钟寄存器都包括一个闹钟使能位,AE可用来使能每一个闹钟寄存器。通过设置各式各样闹钟寄存器的AE位,可以生成多种闹钟。

比如说,一个用户需要在每一小时的15分钟(也就是00:15:00、01:15:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top