MSP430F5529 (八)实时时钟RTC
8.1RTC_A简介
实时时钟模块提供了一个可以配置成一般目的计数器的日历时钟。
RTC_A的特点包括:
(1). 可配置成带日历的实时时钟或者一般目的的计数器;
(2). 在日历模式中提供了秒钟,分钟,小时,星期,日期,月份和年份;
(3). 具有中断能力;
(4). 实时时钟模式下可以配置为BCD或者二进制模式;
(5). 实时时钟模式下具有可编程的闹钟;
(6). 实时时钟模式里具有时间偏差的逻辑校正;
注意:实时时钟模块的大多数寄存器没有初始条件。在使用这个模块之前,用户必须通过软件对寄存器进行配置。
8.2RTC_A的寄存器
说实话,RTC这一章不太好写,东西太多又太碎,不好总结。它一个人的寄存器,比前面加起来似乎还要多。不过还好控制寄存器只有几个,大部分为数值寄存器。
(大家浏览下列寄存器时,注意和上面的结构图配合)
贴这张图的目的仅仅在于告诉大家,16位的寄存器大部分被分成两个8位的寄存器了,操作的时候需要注意你的操作对象是8位的还是16位的。在这里常用8位寄存器来操作。(以下如未特意声明,则全部为8位寄存器)
RTCCTL0实时时钟控制寄存器0(r0表示读为0)
RTCTEIVE:实时时钟-时间事件中断使能
0:禁止中断
1:允许中断
RTCAIE:实时时钟-闹钟中断使能,在计数器模式时被清除(RTCMODE=0)
0:禁止中断
1:允许中断
RTCRDYIE:实时时钟读取准备中断使能
0:禁止中断
1:允许中断
RTCTEVIFG:实时时钟-时间事件标志
0:没有时间事件发生
1:有时间事件发生
RTCAIFG:实时时钟-闹钟标志位,在计数器模式时被清除(RTCMODE=0)
0:没有时间事件发生
1:时间事件发生
RTCRDYIFG:实时时钟读取准备标志位
0:实时时钟不能被安全读取
1:实时时钟能被安全读取
RTCCTL1实时时钟控制寄存器1(rw-(0)表示读写为0)
RTCBCD:实时时钟BCD码格式选择位,选择实时时钟的BCD格式。只能应用于日历模式(RTCMODE=1),在计数器模式中会被忽略设置。改变这个位会将秒、分、小时、星期和年清零,将日期和月份置1。之后,实时时钟寄存器必须被软件设置。
0:选择2进制或者十六进制
1:选择BCD码
RTCHOLD:实时时钟保持位
0:实时时钟(32位计数器或者是日历模式)正在运作
1:计数器模式(RTCMODE=0)),该位置1只会使32位计数器停止;在日历模式(RTCMODE=1)日历以及预分频计数器会被停止。RT0PS和RT1PS、RT0PSHOLD和RT1PSHOLD位可以忽略。
RTCMODE:RTC模式选择。
0:32位计数器模式
1:日历模式。在日历模式和计数器模式之间的切换会重置实时时钟;计数器模式切换到日历模式会将秒、分、小时、星期和年清零,将日期和月份置1。实时时钟寄存器需要后来被软件设置。RT0PS和RT1PS也会被清零。
RTCRDY:实时时钟准备位
0:实时时钟值在转换过渡(日历模式)
1:实时时钟值可被安全读取(日历模式)。在计数器模式,RTCRDY保持清除。
RTCSSEL:实时时钟源选择位。选择时钟源输入到RTC/32计数器。在RTC日历模式这两位是不考虑的,其输入默认是RT1PS的输出。
00ACLK
01SMLK
10从RT1PS输出
11从RT1PS输出
RTCTEV:RTC时间事件指示
RTC模式 | RTCTEV的值 | 内部中断 |
计数器模式 | 00 | 8位溢出 |
01 | 16位溢出 | |
10 | 24位溢出 | |
11 | 32位溢出 | |
日历模式 | 00 | 分钟改变 |
01 | 小时改变 | |
10 | 午夜(00:00) | |
11 | 白天(12:00) |
RTCCTL2 实时时钟控制寄存器2(rw-(0)表示读写为0)
RTCCALS:RTC校准标志
0:频率调整下降
1:频率调整上升
RTCCAL:RTC频率校准位
每个LSB位代表大约+4PPM(RTCCALS=1)或-2PPM(RTCCALS=0)调整频率。
RTCCTL3 实时时钟控制寄存器3
RTCCALF:RTC校准频率校准测量时选择频率输出到RTCCLK引脚(P2.6)上。相对应的端口必须配置为外围模块功能(即P2SEL=BIT6)。RTCCLK在计数模式不可用,此时保持为低且RTCCALF位的值不确定。
00:没有频率输出到RTCCLK引脚
01:512HZ
10:256HZ
11:1HZ
RTCPS0CTL 预分频定时器0控制寄存器(16位寄存器)
RT0SSEL:预分频定时器0时钟源选择位。选择时钟源输入到RT0PS计数器。在RTC日历模式该位不用关心,因为RT0PS时钟输入自动设置到ACLK(32.768KHZ)。
0:ACLK
1:SMCLK
RT0PSdiv:预分频定时器0分频,这些位控制RT0PS计数器的分频。在RTC日历模式对于RT0PS和RT1PS这些位是不用关心的,因为RT0PS时钟输出自动设置到256分频。RT1PS时钟输出自动设置到128分频。
000-111,分别表示2、4、8、16、32、64、128、256分频
RT0PSHOLD:预分频定时器0保持位。在RTC日历模式这些位是不关心的。RTCHOLD置位时,RT0PS停止工作。
MSP430F5529实时时钟RT 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)