




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗3定時器實驗一、實驗目的:1、掌握定時器初始化的步驟;2、掌握定時器控制寄存器(TCR)的含義和使用;3、掌握定時器工作原理,學習定時器中斷的設計方法,掌握1S間隔的定時器的處理。4、熟悉ARM的中斷原理,并產生中斷。二、實驗設備:硬件PC機軟件ADS1.2、PROTUES三、實驗內容及原理:實驗內容:本實驗要求編寫一個簡單的定時器中斷程序,設置一定的周期控制(1S)與某一個引腳(P0.0)相連的LED指示燈。當定時器中斷產生時可以觀察到LED周期性閃爍。實驗原理:定時器控制(中斷方式)。采用11.0592MHz晶振,使用PLL部件,cclk=Fosc*4=11.0592MHz*4=442368MHz,外圍時鐘使用復位默認的Fpclk=fcclk/4=44.2368MHz/4=11.0592MHz,定時器0進行100分頻(即PR=99,MR0=110592),實現(xiàn)1S定時控制LED點亮或熄滅。另外,使用VIC的向量IRQ功能。首先設置定時器為向量IRQ中斷,分配優(yōu)先級并使能向量,然后設置相關向量地址寄存器VICVectAddr0及中斷使能,在中斷服務程序里完成LED的亮滅,在處理完畢后寫向量地址寄存器為0,通知VIC中斷處理結束。四、實驗步驟1、在PROTUES里搭建好硬件電路平臺,處理器采用LPC2106,如下圖所示。2、打開ADS1.2的CodeWarrior編譯環(huán)境,新建一個工程(ARMExecutableImage)工程,工程名為Time0。在新建一個文件Time0.c,添加到工程里。3、在工程空白處右擊,添加工程所需的文件(config.h,target.h,LPC2106.h,Startup.s,IRQ.s,target.c)。如下圖所示。4、編寫Time0.c,實現(xiàn)定時器1s定時,LED燈閃爍。5、配置DebugRelSeteings,打開TargetSettings,設置如下圖所示。6、設置ARMLinker,在Output下選擇Scatterec,添加可映射文件mem.scf.在EquivalentCommandLine下修改入口地址:-entry0x00000000.設置效果如下圖所示。7、配置ARMfromELF輸出格式Outputformat為Intel32bitHex.Outputfilename為Time0.hex.如下圖所示。8、配置完成后,點擊OK.9、在PROTUES里下載Time0.hex(路徑為:E:\time0\time0_Data\DebugRel\Time0.hex)10、運行觀察LED燈閃爍的效果。五、實驗參考程序Time0Init()定時器初始化流程圖設置T0的分頻值和MR0的值設置T0的分頻值和MR0的值啟動定時器并復位選擇定時器中斷為IRQ分配定時器向量IRQ最高優(yōu)先級設置中斷復位程序的地址匹配通道0中斷并使能T0使能IRQ_Time0中斷服務子程序判斷LED燈亮滅判斷LED燈亮滅若滅置亮若亮置滅清除中斷標志通知VIC中斷處理結束Main()主程序流程設置PINSEL0為輸入輸出功能設置PINSEL0為輸入輸出功能開始結束設置IODIR方向調用Time0Init函數等待中斷六、實驗結果定時器控制(中斷方式)實驗結果:每隔1秒LED取反一次。七、實驗結論學習定時器中斷的設計方法,掌握長時間間隔的定時器的處理。在一定程度上掌握了VIC的基本操作,當設置IRQ/FIQ中斷,若是IRQ中斷則可以設置為向量中斷并分配中斷優(yōu)先級,否則為向量IRQ。然后可以設置中斷允許,以及向量中斷對應地址或非向量中斷默認地址。當有中斷后,若是IRQ中斷,則可以讀取向量地址寄存器,然后跳轉到相應代碼。當要退出中斷時,對向量地址寄存器寫0,通知VIC中斷結束。當發(fā)生中斷時,處理器將會切斷處理器模式,同時相關的寄存器也將會映射。/*****************************************************************************文件名:TimerOut.C*功能:使用定時器0實現(xiàn)1秒定時,控制蜂鳴器蜂鳴。(中斷方式)*說明:將跳線器JP9短接,JP4斷開。****************************************************************************/#include"config.h"#define BEEPCON0x00000080 /*P0.7引腳控制B1,低電平蜂鳴*//*****************************************************************************名稱:IRQ_Time0()*功能:定時器0中斷服務程序,取反BEEPCON控制口。*入口參數:無*出口參數:無****************************************************************************/void__irqIRQ_Time0(void){if((IO0PIN&BEEPCON)==0)IO0SET=BEEPCON; elseIO0CLR=BEEPCON; T0IR=0x01; //清除中斷標志VICVectAddr=0x00; //通知VIC中斷處理結束}/*****************************************************************************名稱:Time0Init()*功能:初始化定時器0,定時時間為1S,并使能中斷。*入口參數:無*出口參數:無****************************************************************************/voidTime0Init(void){/*Fcclk=Fosc*4=11.0592MHz*4=44.2368MHz Fpclk=Fcclk/4=44.2368MHz/4=11.0592MHz */ T0PR=99; //設置定時器0分頻為100分頻,得110592Hz T0MCR=0x03; //匹配通道0匹配中斷并復位T0TC T0MR0=110592; //比較值(1S定時值) T0TCR=0x03; //啟動并復位T0TC T0TCR=0x01; /*設置定時器0中斷IRQ*/ VICIntSelect=0x00; //所有中斷通道設置為IRQ中斷 VICVectCntl0=0x24; //定時器0中斷通道分配最高優(yōu)先級(向量控制器0) VICVectAddr0=(uint32)IRQ_Time0; //設置中斷服務程序地址向量 VICIntEnable=0x00000010; //使能定時器0中斷}/*****************************************************************************名稱:main()*功能:初始化I/O及定時器,然后等待中斷。*說明:在STARTUP.S文件中使能IRQ中斷(清零CPSR中的I位)。****************************************************************************/intmain(void){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園員工聘用合同
- 流通經銷合同8篇
- 《無機化學》課程標準
- 出口賠償合同范本
- 個人英語學習計劃
- 三年級語文下冊工作總結
- 南車 合同范本
- 雙方合作生產經營合同范例
- 廚房工作人員勞務合同范本
- 會計記賬報稅合同范本
- 運輸企業(yè)消防應急救援預案
- 高邊坡掛網錨噴支護專項施工方案
- 經營性公墓建設標準
- 10KV系統(tǒng)短路電流整定計算表格
- 初中英語 滬教牛津版 8B U1-4 More Practice Success for Spring Buds 課件
- 壓水堆核電廠在役檢查課件
- 前房角鏡檢查法及其在眼科的應用教學課件
- 2017年度項目生產部工作計劃推進表甘特圖
- 地下室車庫綜合管線施工布置
- 采購訂單模板
- 巴馬格紡絲控制系統(tǒng)軟件說明書(共46頁)
評論
0/150
提交評論