資源描述:
《arm實驗六定時器中斷實驗.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、實驗六:定時器中斷實驗一、實驗?zāi)康氖煜PC2000系列ARM7微控制器的定時器0/1的基本設(shè)置及應(yīng)用。二、實驗設(shè)備硬件:PC機一臺、EasyARM2013開發(fā)板一套軟件:Windows98/XP/2000系統(tǒng),ADS1.2集成開發(fā)環(huán)境三、實驗內(nèi)容使用定時器0實現(xiàn)1秒定時,控制LED燈閃爍。采用軟件查詢方式等待定時時間到達。四、實驗預(yù)習要求仔細閱讀教材關(guān)于定時器0和定時器1的說明。五、實驗步驟1.啟動ADS1.2,使用ARMExecutableImageforlpc2103工程模板建立一個工程TIMEBEEP_C。2.在工程的user中的main文件中編
2、寫實驗程序。3.選用DebugInRAM生成目標,然后編譯連接工程。4.將EasyARM2103開發(fā)板上的JP4跳線P0.17短接。5.選擇【Project】->【Debug】,啟動AXD進行JTAG仿真調(diào)試。6.可以全速運行程序,LED亮一秒,熄一秒,然后再亮一秒……依次循環(huán)。六、實驗參考程序定時器實驗的參考程序見程序清單3.9。程序清單4.11定時器0定時中斷#include"config.h"#defineLED(1<<17/**************************************************************
3、******************函數(shù)名稱:Timer0_ISR**函數(shù)功能:定時器0中斷主程序**輸入?yún)?shù):無**輸出參數(shù):無******************************************************************************/void__irqTimer0ISR(void{if((IO0PIN&LED==0{IO0SET=LED;/*點亮發(fā)光二極管*/}elseIO0CLR=LED;/*熄滅發(fā)光二極管*/T0IR=0x01;/*清除中斷標志*/VICVectAddr=0x00;/*中斷向量結(jié)束
4、*/}/********************************************************************************函數(shù)名稱:Timer0Init**函數(shù)功能:定時器0初始化**輸入?yún)?shù):無**輸出參數(shù):無******************************************************************************/voidTimer0Init(void{T0TCR=0x02;/*定時器0復位*/T0PR=0;/*不設(shè)時鐘分頻*/T0MCR=0x03;/*匹
5、配后復位TC,并產(chǎn)生中斷*/T0MR0=Fpclk/2;/*設(shè)置0.5秒匹配值*/T0IR=0x01;/*清除中斷標志*/T0TCR=0x01;/*啟動定時器0*/}/********************************************************************************函數(shù)名稱:main**函數(shù)功能:定時器0匹配產(chǎn)生中斷**輸入函數(shù):無**輸出參數(shù):無**************************************************************************
6、****/intmain(void{PINSEL1=PINSEL1&0xFFFFFFF3;/*選擇P0.17的GPIO功能*/IO0DIR=LED;/*設(shè)置P0.17為輸出*/IO0SET=LED;/*設(shè)置輸出高電平*/Timer0Init(;/*定時器0初始化*/IRQEnable(;/*IRQ中斷使能*//*設(shè)置向量中斷控制器*/VICIntSelect=VICIntSelect&(~(1<<4;/*定時器0分配為IRQ中斷*/VICVectCntl0=0x20
7、4;/*定時器0分配為向量IRQ通道0*/VICVectAddr0=(uint32Tim
8、er0ISR;/*分配中斷服務(wù)程序地址*/VICIntEnable=1<<4;/*定時器0中斷使能*/while(1;return0;}七、思考1、若需要LED會響2秒,停2秒,在實驗參考程序中應(yīng)修改什么地方?2、若實驗參考程序中設(shè)置T0PR=0,請使用Fpclk宏來設(shè)置T0MR0寄存器,實現(xiàn)1秒或0.5秒定時。(提示:Fpclk宏在項目的config.h文件中定義