資源描述:
《實(shí)驗(yàn)備課筆記》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、實(shí)驗(yàn)1基于ARM處理器的看門狗實(shí)驗(yàn)一、實(shí)驗(yàn)代碼及分析1、實(shí)驗(yàn)代碼Watchdog_enable.sWTCONEQU0x53000000;看門狗控制寄存器WTCNTEQU0x53000008;看門狗計(jì)數(shù)寄存器AREAWATCHDOG_ENABLE,CODE,READONLYENTRY;設(shè)置看門狗控制寄存器ldrr0,=WTCON;加載WTCON寄存器地址;0x4a21=[15:8]=74,[5]=1,[0]=1;ldrr1,=0x4a21;將0x4a21保存到r1里ldrr1,=0x4a21;將0x4
2、a21保存到r1里strr1,[r0];將r1里的值存入r0指向的地址;設(shè)置看門狗計(jì)數(shù)寄存器,該寄存器的值在上電后被加載,1秒超時(shí)ldrr2,=WTCNT;加載WTCNT寄存器地址ldrr3,=0x186a0;將0x2710保存到r1里strr3,[r2];將r3里的值存入r2指向的地址IMPORTled_on;引入led_on符號(hào)blled_on;調(diào)用led_on代碼loopBloop;死循環(huán)END該文件主要完成看門狗控制寄存器的配置,然后啟動(dòng)看門狗開始工作,并調(diào)用led_on控制LED燈的閃爍。
3、由于看門狗的設(shè)置為1秒超時(shí),所以LED燈閃爍1秒后,系統(tǒng)重啟。led_on.SWTCONEQU0x53000000GPBCONEQU0x56000010GPBDATEQU0x56000014DELAYVALEQU0x8fffPAOMADENGEQU0x10000000EXPORTled_onAREALED_INIT,CODE,READONLY;該偽指令定義代碼段LED_INIT,屬性只讀led_onLDRR2,=PAOMADENGMOVR3,#0xFFSTRR3,[R2]LDRR0,=DELAYVA
4、LBLdelayLDRR2,=PAOMADENGMOVR3,#0xEFSTRR3,[R2];顯示左起第二個(gè)LDRR0,=DELAYVALBLdelayLDRR2,=PAOMADENGMOVR3,#0xDFSTRR3,[R2];顯示左起第三個(gè)LDRR0,=DELAYVALBLdelayLDRR2,=PAOMADENGMOVR3,#0xBFSTRR3,[R2];顯示左起第四個(gè)LDRR0,=0xFFFFFBLdelayLDRR2,=PAOMADENGMOVR3,#0x7FSTRR3,[R2]LDRR0,=
5、0xFFFFFBLdelayBled_onmovpc,lrdelaySUBR0,R0,#1CMPR0,#0x0BNEdelayMOVPC,LREND;將控制亮燈數(shù)據(jù)寫入數(shù)據(jù)寄存器r2Led_on.s主要控制Led燈的閃爍實(shí)驗(yàn)2基于ARM處理器的實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)一、實(shí)驗(yàn)代碼及分析實(shí)驗(yàn)代碼(1)表示日期、時(shí)間的數(shù)據(jù)結(jié)構(gòu)/*表示日期、時(shí)間的數(shù)據(jù)結(jié)構(gòu)*/typedefstructST_DATE{shortyear;//年charmon;//月charday;//日charweek_day;//星期charhou
6、r;//時(shí)charmin;//分charsec;//秒}st_date;(2)/*****************************************************************************//Functionname:rtc_set_date//Description:修改實(shí)時(shí)時(shí)鐘當(dāng)前時(shí)間、日期//Returntype:void//Argument:p_date,待設(shè)置的日期****************************************
7、*************************************/voidrtc_set_date(st_date*p_date){rRTCCON=0x01;rBCDYEAR=p_date->year;rBCDMON=p_date->mon;rBCDDAY=p_date->day;rBCDDATE=p_date->week_day;rBCDHOUR=p_date->hour;rBCDMIN=p_date->min;rBCDSEC=p_date->sec;rRTCCON=0x00;}(3)/
8、*****************************************************************************//Functionname:rtc_get_date//Description:獲取實(shí)時(shí)時(shí)鐘當(dāng)前時(shí)間、日期//Returntype:void//Argument:p_date,返回日期的指針***************************************************************