裸機定時器中斷控制LED燈程序設(shè)計實驗報告_第1頁
裸機定時器中斷控制LED燈程序設(shè)計實驗報告_第2頁
裸機定時器中斷控制LED燈程序設(shè)計實驗報告_第3頁
裸機定時器中斷控制LED燈程序設(shè)計實驗報告_第4頁
裸機定時器中斷控制LED燈程序設(shè)計實驗報告_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、裸機定時器中斷控制LED燈程序設(shè)計實驗要求:基于mini2440開發(fā)板,設(shè)計裸機定時器中斷控制LED燈閃爍的 程序。設(shè)計目的鞏固學習嵌入式軟件方面的基本知識,進一步熟悉基本概念。熟練常用控件,文件,圖形等方面的操作了解基本的流程。運用所用學的嵌入式知識,編寫出較為實用的小軟件,增進對一些實際問題的軟,硬件知 識的掌握。培養(yǎng)查閱資料,獨立思考問題的能力。實驗步驟:項目任務(wù)分析,分析實訓內(nèi)容,講解ARM的中斷系 統(tǒng)相關(guān)知識,引導學生入門。學生具體分析實訓題目,明確思路和任務(wù),查詢相 關(guān)書籍、資料,了解ARM的異常類型并理解其響應 過程,重點分析ARM的IRQ中斷系統(tǒng)結(jié)構(gòu)和中斷處 理過程。理解ARM

2、異常向量表、IRQ中斷向量表、中斷向量 表的結(jié)構(gòu)和配置。編寫IRQ中斷分發(fā)程序。一查閱相關(guān)資料,分析S3C2440定時器的工作原理和 設(shè)置方法,編寫定時器初始化函數(shù),定時器中斷初 始化函數(shù)。編寫端口初始化程序,編寫定時器中斷服務(wù)子程序。 進入調(diào)試。繼續(xù)調(diào)試并寫出試驗結(jié)果,寫小結(jié)報告?;舅悸芳瓣P(guān)鍵問題的解決方法;基本思路:按照步驟程序設(shè)計原理說明,使用”CodeWarrior for ARM Developer $軟件編寫程序并 進行編譯,建立一個新的文件單擊【File】菜單中的【NewFile】選項,然后出現(xiàn)下面的對 話框,輸入文件名(加上后綴“.c”),單擊保存按鈕,在編譯過程中如果出現(xiàn)錯

3、誤,修改程 序直到?jīng)]有錯誤為止,編譯過程中出現(xiàn)警告一般可以不必考慮,但特殊時也要通過修改程序 消除警告。程序編寫完成后,將程序所在文件保存到2440test.mcp中,如圖所示:用開發(fā)板測試程序代碼:(1)首先設(shè)置開發(fā)板的撥動開關(guān)S2為Nor Flash啟動,連接好附帶的USB線和 電源(可以不必連接串口線)。(2)設(shè)置超級終端開機進入810,模式,此時開發(fā)板上的綠色LED1會呈現(xiàn)閃爍狀態(tài),其啟 動界面,如下圖:輸入”(4)安裝USB下載驅(qū)動 點擊DNW程序的“USB Port”“Transmit,選擇這個2440test.mcp文件,接著點“打開”,這樣就開始下載了流程圖及電路原理圖1.繪制

4、所需的流程圖,如圖所示:課程設(shè)計心得體會此次課程設(shè)計中我們的收獲:我了解到了和小組成員合作的愉快,我意識到了知識的樂趣性,并感覺到當知識運 用于實踐的時候是一件多么幸福的事情。我也發(fā)現(xiàn)自己的知識功底還遠遠不夠。平時不僅 要將知識點理解掌握,還得勤動手做實驗。在以后的學習中我會更努力,在掌握理論知識的 基礎(chǔ)上,提高自己的動手能力。源程序#define GLOBAL_CLK 1#include #include #include def.h#include option.h#include 2440addr.h”#include 2440lib.h#include 2440slib.h#inclu

5、de mmu.h#include profile.h#include memtest.hvoid Clk0_Enable(int clock_sel);void Clk1_Enable(int clock_sel);void Clk0_Disable(void);void Clk1_Disable(void);volatile U32 downloadAddress;void (*restart)(void) = (void (*)(void)0 x0;volatile unsigned char *downPt;volatile U32 downloadFileSize;volatile U

6、16 checkSum;volatile unsigned int err=0;volatile U32 totalDmaCount;volatile int isUsbdSetConfiguration;#defineGPB5_out(1(5*2)/led1#defineGPB6_out(1(6*2)/led2#defineGPB7_out(1(7*2)/led3#defineGPB8_out(1(8*2)/led4#defineled1_on (15)#defineled2_on (16)#defineled3_on (17)#defineled4_on (18)#defineled1_o

7、ff(15)#defineled2_off(16)#defineled3_off(17)#defineled4_off(18)void _irq Timer。._handle();extern void MMU_Init();void Main(void)/U32 mpll_val=0;ChangeMPllValue(92,4,1);ChangeClockDivider(12,12);/rCLKDIVN&=0 x7;/rCLKDIVN|= 0 x3;MMU_Init();rGPBCON=GPB5_out|GPB6_out|GPB7_out|GPB8_out; /設(shè)置 GPB5-8 為輸出rGP

8、BDAT=led1_off|led2_off|led3_off|led4_off; /led 滅配置中斷寄存器rSRCPND = rSRCPND | (0 x110);rINTPND = rINTPND | (0 x110);rINTMSK = (0 x110);/打開定時器 0 中斷rTCFG0|=0 xf9;/預定標值=249rTCFG1|=0 x01;/定時器 0 進行 4 分頻,f=50M/(249+1)/4=50KHZrTCNTB0=25000;/ 定時時間二25000*(1/f)=0.5srTCON| = (11); / 手動更新rTCON=0 x09; /自動加載,清“手動更新”

9、位,啟動定時器0 pISR_TIMER0 =(U32)Timer0_handle;/裝入定時器 0 中斷函數(shù)地址 pISR_TIMER0=(U32)Timer0_handle;while(1);void _irq Timer0_handle() /中斷服務(wù)函數(shù)static unsigned int count;count+;ClearPending(BIT_TIMER0);/清 SRCPND,INTPND 的定時器 0 中斷標志位if(count%4=1) 第一次進入中斷,led1亮,其他滅rGPBDAT=led2_off|led3_off|led4_off;if(count%4=2) 第二次進入中斷,led2亮,其他滅rGPBDAT=led1_off|led3_off|led4_off;if(count%4=3) 第三次進入中斷,led3亮,其他滅rGPBDAT=led1_off|led2_off|led4

溫馨提示

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

評論

0/150

提交評論