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

MSP430F5529 (八)实时时钟RTC

时间:11-28 来源:互联网 点击:
实时时钟模块提供了具有日历模式的时钟计数、灵活可编程的闹钟以及可校准的时钟计数器。

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停止工作。

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

网站地图

Top