資源描述:
《S3C2410的RTC實時時鐘.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、RTC實時時鐘1、S3C2410的RTC實時時鐘在一個嵌入式系統(tǒng)中,通常采用RTC來提供可靠的系統(tǒng)時間,包括時、分、秒和年、月、日、星期等,而且要求在系統(tǒng)處于關(guān)機(jī)狀態(tài)下它也能夠正常工作(通常采用后備電池供電)。它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的32.768KHz晶體和電阻電容等。2、S3C2410的RTC基本特性時鐘數(shù)據(jù)采用BCD編碼能夠?qū)﹂c年的年月日進(jìn)行自動處理具有報警功能具有獨立的電源輸入提供毫秒級時鐘中斷,可作為內(nèi)核時鐘(3)秒、分、時、日、星期、月、年寄存器寄存器名地址
2、R/W(byte)說明復(fù)位值BCDSEC0x57000070(R/W)秒時鐘當(dāng)前值不定BCDMIN0x57000074(R/W)分時鐘當(dāng)前值不定BCDHOUR0x57000078(R/W)時時鐘當(dāng)前值不定BCDDAY0x5700007C(R/W)日時鐘當(dāng)前值不定BCDDATE0x57000080(R/W)星期當(dāng)前值不定BCDMON0x57000084(R/W)月時鐘當(dāng)前值不定BCDYEAR0x57000088(R/W)年時鐘當(dāng)前值不定6、RTC編程實例#definerRTCCON(*(volatileu
3、nsignedchar*)0x57000040)#definerTICNT(*(volatileunsignedchar*)0x57000044)#definerBCDSEC(*(volatileunsignedchar*)0x57000070)#definerBCDMIN(*(volatileunsignedchar*)0x57000074)#definerBCDHOUR(*(volatileunsignedchar*)0x57000078)#definerBCDDATE(*(volatileunsi
4、gnedchar*)0x5700007c)#definerBCDDAY(*(volatileunsignedchar*)0x57000080)#definerBCDMON(*(volatileunsignedchar*)0x57000084)#definerBCDYEAR(*(volatileunsignedchar*)0x57000088)6、RTC編程實例(1)實時時鐘初始化函數(shù)voidRtc_Init(void)/******************************************
5、***Functionname:Rtc_InitDescription:實時時鐘初始化程序*********************************************/voidRtc_Init(void){rRTCCON=0x01;//RTC讀寫使能,選擇BCD時鐘//無復(fù)位,1/32768rBCDYEAR=0x05;//設(shè)定年rBCDMON=0x03;//設(shè)定月rBCDDAY=0x06;//設(shè)定日rBCDDATE=0x03;//設(shè)定星期rBCDHOUR=0x17;//設(shè)定小時rBCDMI
6、N=0x34;//設(shè)定分鐘rBCDSEC=0x28;//設(shè)定秒rRTCCON=0x00;//RTC讀寫禁止,選擇BCD時鐘//無復(fù)位,1/32768}6、RTC編程實例(2)實時時鐘顯示函數(shù)voidDisplay_Rtc(void)/************************************************Functionname:Display_RtcDescription:實時時鐘顯示程序Argument:讀出當(dāng)前的時間,然后顯示************************
7、************************/voidDisplay_Rtc(void){intyear;intmonth,day,weekday,hour,min,sec;rRTCCON=0x01;while(1){if(rBCDYEAR==0x99)year=0x1999;elseyear=0x2000+rBCDYEAR;month=rBCDMON;day=rBCDDAY;weekday=rBCDDATE;hour=rBCDHOUR;min=rBCDMIN;sec=rBCDSEC;if(sec!
8、=0)break;}printf("RTCTIME:%4x/%02x/%02x%s–%02x:%02x:%02x",year,month,day,date[weekday],hour,min,sec);rRTCCON=0x0;}6、RTC編程實例(3)測試主函數(shù)voidmain(void)/**********************************************Functionname:mainArgument:初始