MSP430F5529 (八)實(shí)時(shí)時(shí)鐘RTC
(4). 如何關(guān)閉計(jì)數(shù)器。
為了簡單一點(diǎn),把所有HOLD位都置位,則可以保證在任何情況下都可以關(guān)閉32位計(jì)數(shù)器。
注意:對計(jì)數(shù)值寄存器寫時(shí),立即生效。
讀時(shí),如果該時(shí)鐘與CPU時(shí)鐘不同步,則需要暫停計(jì)數(shù)器來讀數(shù)。或者通過多次讀取,來軟件判斷哪個(gè)是正確值。
8.3.2 日歷模式
當(dāng)RTCMODE置位的時(shí)候,日歷模式就被選中了。在日歷模式中,實(shí)時(shí)時(shí)鐘模塊可選擇以BCD碼或者是十六進(jìn)制提供秒、分、小時(shí)、星期、日期、月份和年份。日歷會自動計(jì)算是否是閏年,這個(gè)算法可以精確到1901年到2099年。
(1). 時(shí)鐘和預(yù)分頻。
RT0PS必須源于ACLK,ACLK必須是32768Hz,。 RT0PS會自動進(jìn)行256分頻,然后其輸出再接RT1PS,RT1PS在被自動128分頻,最后提供的時(shí)鐘信號就是間隔一秒了。從計(jì)數(shù)器模式切換到日歷模式時(shí),會將秒、分、小時(shí)、星期、年份全部置清零,會將日期和月份全部置1。另外,RT0PS和RT1PS也會被清零。(這里把這些狀態(tài)暫定義為默認(rèn)復(fù)位狀態(tài))
(2). 日歷寄存器編碼格式。
當(dāng)RTCBCD=1時(shí),日歷寄存器就會被選為BCD碼格式。必須在時(shí)間設(shè)置之前選擇好格式。改變RTCBCD的狀態(tài)會使進(jìn)入默認(rèn)復(fù)位狀態(tài)。
在日歷模式下,RT0SSEL、RT1SSEL、RT0PSDIV、RT1PSDIV、RT0PSHOLD、RT1PSHOLD和RTCSSEL 位都可以被忽略。置位RTCHOLD則會停止實(shí)時(shí)計(jì)數(shù)器、分頻計(jì)數(shù)器和RT0PS、RT1PS。
(3). 靈活的鬧鐘
用戶可編程鬧鐘功能只有在日歷模式運(yùn)行的時(shí)候才有效。
每一個(gè)鬧鐘寄存器都包括一個(gè)鬧鐘使能位,AE可用來使能每一個(gè)鬧鐘寄存器。通過設(shè)置各式各樣鬧鐘寄存器的AE位,可以生成多種鬧鐘。
比如說,一個(gè)用戶需要在每一小時(shí)的15分鐘(也就是00:15:00、01:15:00、02:15:00等等時(shí)刻)進(jìn)行一次鬧鐘。這只要將RTCAMIN設(shè)置成15即可實(shí)現(xiàn)上述功能要求。通過置位RTCAMIN的AE位和清零鬧鐘寄存器的所有其它AE位,就會使能鬧鐘。正常工作時(shí),對應(yīng)的鬧鐘標(biāo)志位RTCCIFG就會在00:14:59到00:15:00、01:14:59到01:15:00、02:14:59到02:15:00等等時(shí)刻被置位。
注意:寫時(shí)間時(shí),請務(wù)必保證格式正確,否則會出現(xiàn)無法預(yù)知的錯(cuò)誤;
此外,修改鬧鐘時(shí)間的時(shí)候,為了避免錯(cuò)誤,請先清RTCAIE、RTCAIFG、AE位來暫停鬧鐘功能。
8.3.3讀寫日歷模式下的RTC寄存器
因?yàn)橄到y(tǒng)時(shí)鐘實(shí)際上是和實(shí)時(shí)時(shí)鐘的時(shí)鐘源是異步的,因此在進(jìn)入實(shí)時(shí)時(shí)鐘寄存器的時(shí)候要格外小心。
在日歷模式下,實(shí)時(shí)時(shí)鐘寄存器每秒鐘更新一次。為了防止在更新的時(shí)候讀取實(shí)時(shí)時(shí)鐘數(shù)據(jù)而造成錯(cuò)誤數(shù)據(jù)的讀取,系統(tǒng)設(shè)立了一個(gè)禁止讀取的區(qū)域。每次RTC寄存器更新的那一剎那,左右1/256s被劃為禁止讀寫的區(qū)域。RTCRDY位用來指示這個(gè)時(shí)間區(qū)域。RTCRDY置0時(shí),表明處于這一區(qū)域;置1時(shí)表明在這一區(qū)域之外,可以發(fā)生讀寫。
一個(gè)簡單而安全讀取實(shí)時(shí)時(shí)鐘寄存器的方法是利用RTCRDYIFG中斷標(biāo)志位。設(shè)置RTCRDYIE使能RTCRDYIFG中斷。一旦中斷使能,在RTCRDY位上升沿的時(shí)候?qū)a(chǎn)生中斷,致使RTCRDYIFG被置位。這樣,我們幾乎有一秒鐘的安全時(shí)間去讀寫任一個(gè)寄存器。當(dāng)中斷得到響應(yīng)的時(shí)候,RTCRDYIFG會自動復(fù)位,當(dāng)然也可以軟件復(fù)位。
8.3.4RTC中斷表
(1). 每一個(gè)中斷標(biāo)志都配有相應(yīng)的中斷使能。
(2). 請注意:RTCTE定義的時(shí)間事件(計(jì)時(shí)模式和日歷模式不同)
(3). 對于RT0PSIFG和RT1PSIFG標(biāo)志位,舉一個(gè)例子:
通過RT0IP位,可以選擇地讓RT0PSIFG位用來生成間接中斷。在日歷模式下,RT0PS的時(shí)鐘源是32768Hz的ACLK,所以通過RT0IP控制中斷間隔可以產(chǎn)生16384Hz、8192Hz、4096Hz、2048Hz、1024Hz、512Hz、256Hz和128Hz的時(shí)間間隔。設(shè)置RT0PSIE位可以使能中斷。

8.3.5RTC校準(zhǔn)
(1). 把P2.6設(shè)定為輸出狀態(tài),并聲明有特殊功能;
P2.6為RTCCLK的輸出引腳
(2). 通過設(shè)置RTCCTL3寄存器中的RTCCALF來設(shè)置P2.6輸出信號的頻率;
(3). 精確測量該頻率,然后計(jì)算誤差;
(4). 最后設(shè)置RTCCTL2寄存器,來調(diào)節(jié)頻率增高或降低多少。
PPM表示百萬分之一所輸出的頻率;
注意:校準(zhǔn)設(shè)置發(fā)生改變時(shí),在RTCCLK引腳觀察512Hz和256Hz的輸出頻率是不會有影響的。而校準(zhǔn)發(fā)生改變時(shí),1Hz的輸出頻率是有影響的。
關(guān)鍵詞:
MSP430F5529實(shí)時(shí)時(shí)鐘RT
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論