PIC32RTCC實時時鐘和日歷_第1頁
PIC32RTCC實時時鐘和日歷_第2頁
PIC32RTCC實時時鐘和日歷_第3頁
PIC32RTCC實時時鐘和日歷_第4頁
PIC32RTCC實時時鐘和日歷_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、PIC32 RTCC實時時鐘和日歷RTCC 實時時間和日歷結(jié)構(gòu)體定義:rtccDate dt;/ 日期結(jié)構(gòu)體 dt.year 年 ,dt.mon月,dt.mday日,dt.wday星期幾,dt.l整體rtccTime tm;時間結(jié)構(gòu)體 tm.hour 時,tm.min分,tm.sec 秒,tm.l整體rtccDate adt;/ 鬧鐘時間結(jié)構(gòu)體定義rtccTime atm;一.RTCC模塊設(shè)置初始化 RTCCRtccInit(); / 禁止中斷,清除中斷標志,關(guān)閉鬧鐘Alarm ,鎖寫 , 開啟 RTCC ON等待穩(wěn)定開啟 RTCC While(RtccGetClkStat()!=RTCC_C

2、LK_ON);寫入RTCC初始值RtccOpen(tm.l,da.l,Cal); /寫入初始時間,設(shè)置校準偏移 cal校準值 CALCAL=( 理想頻率( 32,758 )– 實際頻率 ) * 60 = 每 分鐘誤差時鐘數(shù)每分鐘加 10 時鐘數(shù)RtccSetCalibration(10);/二 . 鬧鐘模塊設(shè)置 鬧鐘時間設(shè)置RtccSetAlarmTimeDate(atm.l,adt.l); 鬧鈴匹配周期 注意 1 RtccSetAlarmRpt(RTCC_RPT_TEN_SEC); /10s 一次匹 配鬧鈴重復次數(shù)RtccSetAlarmRptCount(5); / 每發(fā)

3、生一次鬧鐘時間 遞減 1 即重復 5+1 次 是否需要無限重復鬧鈴RtccChimeEnable(); /CHIME 為 1 時 rptcount 能從 0 回到 ff 無限重復,反之鬧鐘使能RtccAlarmEnable();三. 中斷模塊設(shè)置 設(shè)置中斷優(yōu)先級,使能事件中斷,系統(tǒng)中斷使能 (詳見中 斷)注1 :重復周期RPT即計時器與鬧鐘寄存器相匹配的周 期。若在匹配周期內(nèi)有鬧鐘時間,則中斷信號在此發(fā)出。隨 后以此鬧鐘時間為基準延后一個匹配周期后發(fā)出中斷信號。 若在匹配周期內(nèi)無鬧鐘時間,中斷都將在匹配周期結(jié)束 時發(fā)出,重復上面的情況。例如 現(xiàn)在時間 2014年 7月19日星期六, 0:05:

4、30設(shè)置鬧鐘時間 2014 年 7 月 19 日, 0:05: 59 設(shè)置半秒:則每半秒都會產(chǎn)生中斷 設(shè)置 10 秒:前兩 個中斷在 40s , 50s,然后59s, 9s.設(shè)置 1 分:中斷發(fā)生在 05:59, 06:59.設(shè)置 10分:中斷在 05:59, 15: 59…2: RTCC器件可以產(chǎn)生一些中斷,反映在RTCC定時器與鬧鐘寄存器匹配時發(fā)生的鬧鐘事件。模塊會根據(jù)AMASI位設(shè)置,與時間/日期寄存器的無掩碼部分進行 匹配。每個鬧鐘事件發(fā)生時,都能產(chǎn)生中斷 .3: ARPT;:鬧鐘重復計數(shù)器值位每當發(fā)生鬧鐘事件時計 數(shù)器就遞減 1。要提供無限重復鬧鐘,可以使用 C

5、HIME (RTCALRM); 位使能響鈴功能。當CHIME = 1 時,在執(zhí)行最后一次重復之后,ARPT將從0x00計滿返回至0xFF,并繼續(xù)無限計數(shù),而不是禁止鬧鐘。CHIME = 1,計數(shù)器能從00返回到FF,即可連續(xù)響鈴。CHIME = 0,計數(shù)器不能從 00返回到FF,響鈴ARPT+1次RtccSetAlarmRpt(rtccRepeat rpt);/設(shè)定鬧鐘重復周RTCC_RPT_HALF_SEC, / repeat alarm every half secondRTCC_RPT_SEC, / repeat alarm every second RTCC_RPT_TEN_SEC,

6、/ repeat alarm every ten secondsRTCC_RPT_MIN, / repeat alarm every minute RTCC_RPT_TEN_MIN, / repeat alarm every ten minutesRTCC_RPT_HOUR, / repeat alarm every hourRTCC_RPT_DAY, / repeat alarm every dayRTCC_RPT_WEEK, / repeat alarm every week RTCC_RPT_MON, / repeat alarm every month RTCC_RPT_YEAR /

7、repeat alarm every year (except when configured for Feb 29th.) 例如RTCC鬧鐘中斷點亮led#include#pragma config JTAGEN= OFF /JTAG Enable (JTAGDisabled)#pragma config FWDTEN = OFF / Watchdog TimerEnable (WDT Disabled (SWDTEN Bit Controls) rtccDate dt;/ 日期結(jié)構(gòu)體 dt.year 年 ,dt.mon 月,dt.mday日,dt.wday星期幾,dt.l整體 rtccTi

8、me tm; 時間結(jié)構(gòu)體 tm.hour 時,tm.min分,tm.sec 秒,tm.l整體 rtccDate adt;/ 鬧鐘時間結(jié)構(gòu)體定義 rtccTime atm;int Alarmflag=0;int main()PORTSetPinsDigitalOut(IOPORT_B,BIT_9); PORTSetBits(IOPORT_B,BIT_9);RtccInit();/ 實時時間日歷初始化, RTCC ON while(RtccGetClkStat()!=RTCC_CLK_ON);/ 等待振蕩器 穩(wěn)定tm.hour=0x22;tm.min=0x40;tm.sec=0x30;dt.yea

9、r=0x14;dt.mon=0x07;dt.mday=0x17;dt.wday=0x04;RtccOpen(tm.l,dt.l,0);/初時間 22:40:30 ,14年 7月17 日星期 4,校準偏移 0RtccGetTimeDate(&tm,&dt);/ 獲得實時時間和日期 atm.l=tm.l;adt.l=dt.l;atm.sec=tm.sec+0x20;/ 延后 20 秒RtccChimeEnable();/ 無限重復鬧鈴允許RtccSetAlarmRptCount(0);/ 鬧鈴重復次數(shù) 0+1,最高 256, CHIME=1時次數(shù)無限RtccSetAlarmRpt(RTCC_RPT_MIN);/ 鬧鐘匹配周期 1min、/. I、,G > :a注意: 1RtccSetAlarmTimeDate(atm.l,adt.l);/設(shè)置鬧鐘時間RtccAlarmEnable();/ 鬧鐘使能 mRTCCSetIntPriority(2);mRTCCClearIntFlag();mRTCCIntEnable(1);INTEnableSystemMultiVectoredInt();while(1)if(Alarmflag=1)RtccSetAlar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論