久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430F5529 (八)實時時鐘RTC

MSP430F5529 (八)實時時鐘RTC

作者: 時間:2016-11-28 來源:網絡 收藏
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時間事件指示

本文引用地址:http://cqxgywz.com/article/201611/322796.htm
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停止工作。
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,每一個都可以單獨的訪問,并可能被寫入。

評論


技術專區

關閉