2023年嵌入式軟件開發(fā)基礎(chǔ)實驗報告實時時鐘_第1頁
2023年嵌入式軟件開發(fā)基礎(chǔ)實驗報告實時時鐘_第2頁
2023年嵌入式軟件開發(fā)基礎(chǔ)實驗報告實時時鐘_第3頁
2023年嵌入式軟件開發(fā)基礎(chǔ)實驗報告實時時鐘_第4頁
2023年嵌入式軟件開發(fā)基礎(chǔ)實驗報告實時時鐘_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

上海土力等相嵌入式軟件開發(fā)基礎(chǔ)實驗報告題目:【ARM】實時時鐘實驗專業(yè):電子科學(xué)與技術(shù)年級:姓名:學(xué)號:—

)//writethedataintortcregirBCDMON=nTmp;//->month;sternTmp=szStr[--i]&0x0f:if(cN09)if(i){nTmp|=(szStr[-i]<<4)&0xff;rRTCCON=0x01;//R/Wenable,1if(nTmp>0x99)/32768,CN09=0:Normal(merge),NoresetrBCDYEAR=nTmp://->year;i=nTmp;rRTCCON=0x00://R/Wdisab1enTmp=szStr[i]&0x0f;uart_printf("Currentdateis:20%0if(nTmp==7)2x-%02x-%02x%s\n"rBCDDATE=1;//s3c44bOx:SUN:1MON:,rBCDYEAR,rBCDMON.rBCDDA2Y,f_szdate[rBCDDATE]):TUE:3WED:4THU:5FRI:6SAT:7if(!cN09)eIseuart_printf("Wrongvalue!\n");rBCDDATE=nTmp+1://->weekday:}elseuart_printf("Wrongva1ue!\n");nTmp=szStr[i—=2]&0x0f;return(int)cN09;cN09=0;if(szStr[-i]!=if(nTmp>0x12)nTmp|=(szStr[i-]?4)&0xff;廠**********?******?**?***?****文****?**??**if(nTmp>0x31)*?***火+CN09=0;*************rBCDDAY=nTmp://->day;*name:rtc_set_timenTmp=szStr[--i]&0x0f;*func:getandchecktheTIMEstringif(szStr[—i]!=fromuartchannelIosetrtcnTmp|=(szStr[i-—]?4)&0xff;*para:nonc*ret:cN09=0:invalidstring

okelse*modify:(*comment:nTmp=i-1;★★★★**??*****?**表**for(i=nTmp:i>=0;i-)*mm*m*******夫*(*”*??*★?????***if(SzStr[i]!=,:,)intrtc_set_time(char*pString)if((szStr[i]<*O'|szStr[i]>'9'))(cNO9=0;charcYn,cN09=1;)charszStr[8];//xx:xx:xx)inti.nTmp;//writethedataintortcregistermemcpy{(void*)szStr,pString,8);if(cN09)//checktheformatofthedata(nTmp=0;rRTCCON=Ox01;//RAA/enable,1/cN09=1:32768,for(i=0;((i<8)&(szStr[i]!='\0'));Normal(merge),Noreseti++)i=nTmp;{nTmp=szStr[i]&0xOf;if(szStr[i]==':')if(szStr[-i]!=*:z)nTmp+=1;nTmp|=(szStr[i]?4)&0xff;)if(nTmp>0x59)if(nTmp!=2)//atIeast3cN09=0;(rBCDSEC=nTmp;//->second;CN09=0;nTmp=szStr[-i]&OxOf;cNO9=1:settimebyinputstringand)uart_printf("InValidformat!!\n\r");if(szStr[-i]!=,:*)

nTmp|=(szStr[i-]<<4)&0xff;nTmp|=(szStr[i-]<<4)&0xff;if(nTmp>0x59)CN09=0;rBCDMIN=nTmp;//—>min;nTmp=szStr[-i]&0x0f;if(i)nTmp|=(szStr[-i]<<4)&0xff;if(nTmp>0x24)CNO9=0;nTmp|=(szStr[i-]<<4)&0xff;if(nTmp>0x59)CN09=0nTmp|=(szStr[i-]<<4)&0xff;if(nTmp>0x59)CN09=0;rBCDMIN=nTmp;//—>min;nTmp=szStr[-i]&0x0f;if(i)nTmp|=(szStr[-i]<<4)&0xff;if(nTmp>0x24)CNO9=0;rBCDHOUR=nTmp://->hour;rRTCCON=0x00;//R/wdisableif(!cN09)uart_printf("Wrongva1ue!\n");ARM7基礎(chǔ)實驗教程-200-}elseuart_printf('*Wrongvalue!\n")return(int)cN09;第一、對ARM的相關(guān)理論知識有了初步的了解。了解工作原理和程序環(huán)節(jié)等。這些知識不僅在課堂上有效,對這次的實踐的學(xué)習(xí)加深了印象,并且在將來的工作中也一定會有幫助。第二、自己的動手能力和自學(xué)能力有了很大的提高。實踐出真知,今天,我其實才深刻感受到這句話的實在意義。涉及在碰到問題的時候,我通過問老師,問同學(xué)、自己找資料的方式得出了答案,更加深了我的理解和認(rèn)知。一、實驗?zāi)康?、了解實時時鐘的硬件控制原理及設(shè)計方法。2、掌握S3C44B0X解決淵的RTC模塊程序設(shè)計方法。二、實驗設(shè)備1、硬件:EmbestEduKit-III實驗平臺,EmbestARM標(biāo)準(zhǔn)/增強型仿真器套件,PC機。2、軟件:EmbestIDEProARM集成開發(fā)環(huán)境,Windows98/2023/NT/XPo三、實驗內(nèi)容學(xué)習(xí)和掌握EmbestEduKit-III實驗平臺中RTC模塊的使用,進(jìn)行以下操作:1、編寫應(yīng)用程序,修改時鐘日期及時間的設(shè)立。2、使用EMBESTARM教學(xué)系統(tǒng)的串口,在超級終端顯示當(dāng)前系統(tǒng)時間。四、實瞼原理1?實時時鐘(RTC)實時時鐘(RTC)器件是一種能提供日歷/時鐘、數(shù)據(jù)存儲等功能的專用集成電路,常用作各種計算機系統(tǒng)的時鐘信號源和參數(shù)設(shè)立存儲電路。RTC具有計時準(zhǔn)確、耗電低和體積小等特點,特別是在各種嵌入式系統(tǒng)中用于記錄事件發(fā)生的時間和相關(guān)信息,如通信工程、電力自動化、工業(yè)控制等自動化限度高的領(lǐng)域的無人值守環(huán)境。隨著集成電路技術(shù)的不斷發(fā)展,RTC器件的新品也不斷推出,這些新品不僅具有準(zhǔn)確的RTC,尚有大容量的存儲器、溫度傳感器和A/D數(shù)據(jù)采集通道等,已成為集RTC、數(shù)據(jù)采集和存儲于一體的綜合功能器件,特別合用于以微控制器為核心的嵌入式系統(tǒng)。RTC器件與微控制器之間的接口大都采用連線簡樸的串行接口,諸如I2C、SPI、MICROWIRE和CAN等串行總線接口。這些串口由2?3根線連接,分為同步和異步。2.S3C44B0X實時時鐘(RTC)單元S3C44B0X實時時鐘(RTC)單元是解決器集成的片內(nèi)外設(shè)。由開發(fā)板上的后備電池供電,可以在系統(tǒng)電源關(guān)閉的情況下運營。RTC發(fā)送8位BCD碼數(shù)據(jù)到CPU。傳送的數(shù)據(jù)涉及秒、分、小時、星期、日期、月份和年份。RTC單元時鐘源由外部32.768KHz晶振提供,可以實現(xiàn)鬧鐘(報警)功能。S3C44B0X實時時鐘(RTC)單元特性:BCD數(shù)據(jù):秒、分、小時、星期、日期、月份和年份1、鬧鐘(報警)功能:產(chǎn)生定期中斷或激活系統(tǒng)2自動計算閏年3、無2023年問題4、獨立的電源輸入5、支持亳秒級時間片中斷,為RTOS提供時間基準(zhǔn)讀/寫寄存器訪問RTC模塊的寄存器,一方面要設(shè)RTCCON的bitO為1。CPU通過讀取RTC模塊中寄存器BCDSEC、BCDMIN.BCDHOUR.BCDDAY、BCDDATE.BCDMON和BCDYEAR的值,得到當(dāng)前的相應(yīng)時間值。然而,由于多個寄存器依次讀出,所以有也許產(chǎn)生錯誤。比如:用戶依次讀取年(1989)、月(12)、日(31)、時(23)、分(59)、秒(59)。當(dāng)秒數(shù)為1到59時,沒有任何問題,但是,當(dāng)秒數(shù)為0時,當(dāng)前時間和日期就變成了1990年1月1日0時。分。這種情況下(秒數(shù)為0),用戶應(yīng)當(dāng)重新讀取年份到分鐘的值(參考程序設(shè)計)。后備電池:RTC單元可以使用后備電池通過管腳RTCVDD供電。當(dāng)系統(tǒng)關(guān)閉電源以后,CPU和RTC的接口電路被阻斷,后備電池只需要驅(qū)動晶振和BCD計數(shù)器,從而達(dá)成最小的功耗。鬧鐘功能RTC在指定的時間產(chǎn)生報警信號,涉及CPU工作在正常模式和休眠(powerdown)模式下。在正常工作模式,報警中斷信號(ALMINT)被激活。在休眠模式,報警中斷信號和喚醒信號(PMWKUP)同時被激活。RTC報警寄存器(RTCALM)決定報警功能的使能/屏蔽和完畢報警時間檢測。時間片中斷RTC時間片中斷用于中斷請求。寄存器TICNT有一個中斷使能位和中斷計數(shù)。該中斷計數(shù)自動遞減,當(dāng)達(dá)成0時,則產(chǎn)生中斷。中斷周期按照下列公式計算:Period=(n+1)/128second其中,n為RTC時鐘中斷計數(shù),可取值為(IT27)置零計數(shù)功能RTC的置零計數(shù)功能可以實現(xiàn)30、40和50秒步長重新計數(shù),供某些專用系統(tǒng)使用。當(dāng)使用50秒置零設(shè)立時,假如當(dāng)前時間是11:59:49,則下一秒后時間將變?yōu)?2:00:00o注意:所有的RTC寄存器都是字節(jié)型的,必須使用字節(jié)訪問指令(STRB、LDRB)或字符型指針訪問。五、實驗設(shè)計.硬件電路設(shè)計.軟件程序設(shè)計(1)時鐘設(shè)立時鐘設(shè)立程序必須實現(xiàn)時鐘工作情況以及數(shù)據(jù)設(shè)立有效性檢測功能。具體實現(xiàn)可以參考示例程序設(shè)計。(2)時鐘顯不時鐘參數(shù)通過實驗系統(tǒng)串口0輸出到超級終端,顯示內(nèi)容涉及年月日時分秒。參數(shù)以BCD碼形式傳送,用戶使用串口通信函數(shù)(參見串口通信實驗)將參數(shù)取出顯示。

******/********************************4★★name:******/********************************4★★name:func:readdatafromrtcmodify:commenvoidrtc_read(void)(while(1)(//readthedatafromRTCregistersif(rBCDYEAR==0x99)g_nYear=0x1999;eIseg_nYcar=Ox2023+rBCDYEAR;gnMonth=rBCDMON;g_nDay=rBCDDAY:g_nWeekday=rBCDDATE;g_nHour=rBCDHOUR:g_nMin=rBCDMIN;g_nSec=rBCDSEC;if(g_nSec!=0)

break;***廣*************★********mm*************?***?*?*★★*★****?*****★★★★★★★★★*★★★*name:rtc_display***func:displaydatafromrlcpara:noneret:nonemodify:*comment:voidrtc_display(void)★*火★*火★★★**火★★★**?*****rtc_read();uart_prinlf("\n\rCurrentTimeis%O2x-%O2x-%02x%s",g_nYear?g_nMonth,g_nDay,Jszdate[g_nWeekday]);uartprintf("%02x:%02x:%02x\r\n'',g_nHour,gnMin,g_nScc);)六、實驗操作環(huán)節(jié).準(zhǔn)備實驗環(huán)境使用Embest仿真器連接Fl的板,使用EmbestEduKit-III實驗板附帶的串口線,連接實驗板上的UARTO和PC機的串口。.串口接受設(shè)立在PC機上運營windows自帶的超級終端串口通信程序(波特率115200、1位停止位、無校驗位、無硬件流控制);或者使用其它串口通信程序。.打開實驗例程1)拷貝光盤CD1\S。ftware\EduKit44bO文獻(xiàn)夾到EmbestIDE\Examp1es\Samsung\目錄下:2)使用EmbestIDE通過EmbestJTAG仿真器連接實驗板,打開實驗例程目錄4.5_rtc_test子目錄下的rtc_test.pjf例程,編譯鏈接工程;3)點擊IDE的Debug菜單,選擇RemoteConnect項或F8鍵,遠(yuǎn)程連接目的板;4)點擊IDE的Debug菜單,選擇Download下載調(diào)試代碼到目的系統(tǒng)的RAM中;5)點擊Debug菜單的G?;騀5犍運營程序。4.觀測實驗結(jié)果.在PC機上觀測超級終端程序主窗口,可以看到如下界面:bootsuccess...RTCTestExampleRTCCheck(Y/N)?.用戶可以選擇是否對RTC進(jìn)行檢查,檢核對的的話,繼續(xù)執(zhí)行程序,檢查不對的時也會提醒是否重檢查:RTCCheck(Y/N)?ySetDefau11Timeat2023-12-31FRI23:59:59SetAlarmTimeat2023-01-0100:00:01...RTCAlarmInterruptO.K....CurrentTimeis2023-01-01SAT00:00:01RTCWorkingnow.Tosetdate(Y/N)?.用戶可以選擇是否重新進(jìn)行時鐘設(shè)立,當(dāng)輸入不耐的時也會提醒是否重新設(shè)立:RTCWorkingnow.Tosetdate(Y/N)?yCurrentdateis(2023,01,0lfSAT).inputnewdate(yy-mm-ddw):5—2—233Currentdateis:2023-02-23WEDRTCWorkingnow.Tosettime(Y/N)?yCurrenttimeis(00:02:57).Tosettime(hh:mm:ss):19:32:5.最終超級終端輸出信息如F:CurrentTimeis2023—02—23WED19:32:0519:32:07七、實驗參考程序1.環(huán)境及函數(shù)聲明ARM7基礎(chǔ)實驗教程--*/-196-/*functiondec1are*//*-————-------——————-———/*一....———--------————*/rgloba1variables,/inttest_rtc_alarm(void):---———-voidrtcjnit(void):—————―______―一voidread_rtc(void);————一-*/voiddisplay_rtc(void);intg_nYear;voidtest_rtc_tick(void):intg_nMonth,g_nDay,g_nWeekday,voidrtc_int(void);g_nHour,g_nMin,g_nSec;voidrtc_tick(void);j?—一??—一—2.時鐘設(shè)立控制程序/***********?*****?文????***

o));i++)**?****★★★★★★★★***★★★★********??*★*****if((szStr[i]==',)|(szStr[i]==''******?*……文?*??nTmp+=1;*name:rtc_set_date}*func:getandchecktheDATEsif(nTmp<3)//atIeast2and1tringfromuartchan

溫馨提示

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

最新文檔

評論

0/150

提交評論