siga s16開發(fā)板之定時器中斷實驗_第1頁
siga s16開發(fā)板之定時器中斷實驗_第2頁
siga s16開發(fā)板之定時器中斷實驗_第3頁
siga s16開發(fā)板之定時器中斷實驗_第4頁
siga s16開發(fā)板之定時器中斷實驗_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Siga-S16 開發(fā)板之定時器中斷實驗Siga-S16 FPGA 開發(fā)板之定時器中斷實驗Rev. 1.00Rev1.00S1Siga-S16 開發(fā)板之定時器中斷實驗版本Rev1.00S2版本時間作者描述Rev0.012011-6-20LuoFirst Version ReleaseSiga-S16 開發(fā)板之定時器中斷實驗通過本篇,您可以了解到如何在 MicorBlaze 系統(tǒng)中使用定時器,如何產(chǎn)生中斷及中斷處理 ,以及 API 函數(shù)的使用和 SDK調(diào)試的一些和技巧。本文檔分為以下幾個部分:一、簡介二、硬件開發(fā)三、開發(fā)Rev1.00S

2、3Siga-S16 開發(fā)板之定時器中斷實驗一、 簡介開始定時器中斷實驗之前我們先來了解什么是定時器,什么是定時器中斷,什么是中斷處理程序,什么是中斷優(yōu)先級。定時器則是由硬件系統(tǒng)提供的一個非常的計數(shù)源。它是由主時鐘分頻后獲得的一個脈沖源來計數(shù)。定時器可以由指令來改變其工作方式、定時時間、量程、啟動方式等。當定時器開始計數(shù)并達到最大值(正計數(shù))或為零(負計數(shù))時,就會產(chǎn)生溢出。當定時器/ 計數(shù)器計溢出時,就會使得相關(guān)的寄存器標志產(chǎn)生變化,CPU由此而產(chǎn)生定時中斷,如果定時中斷使能,跳轉(zhuǎn)到中斷服務(wù)處理需要完成的任務(wù)。為使系統(tǒng)響應(yīng)并處理發(fā)生的所有中斷,系統(tǒng)根據(jù)引起中斷的重要性和緊迫程度,硬件將中斷源分

3、為若干個級別,稱作中斷優(yōu)先級。本實驗以定時器中斷為例,為大家在MicroBlaze系統(tǒng)中如何使用定時器及定時器中斷處理的硬件開發(fā)和開發(fā)。二、硬件開發(fā)要進行定時器的中斷,我們需要在MicroBlaze硬件系統(tǒng)中添加一個定時器和一個中斷器,這部分我們已經(jīng)在EDK建立MicroBlaze硬件系統(tǒng)的時候就添加了,如下圖紅圈所示的中斷器Interrupt和定時器Timer0:如果你的MicroBlaze的系統(tǒng)中還沒有添加這兩個器。中斷器雙擊下圖中的IP CatalogRev1.00S4Siga-S16 開發(fā)板之定時器中斷實驗界面中XPS Interrupt Controller添加,

4、定時器雙擊下圖中的XPS Timer/Counter添加。再對定時器的進行配置,在案User配置頁面中,設(shè)置Only One Timer is present保持默認值不變。如下圖所示:為Enable,其它接下來是中斷器的配置,設(shè)置Irq信號為內(nèi)部中斷信號Interrupt_Irq,再把此信號作為MicroBlaze_0處理器的中斷輸入,使得MicroBlaze_0能夠響應(yīng)中斷如下圖紅圈處:器產(chǎn)生的中斷。設(shè)置后Rev1.00S5Siga-S16 開發(fā)板之定時器中斷實驗接下去我們可以在中斷器中設(shè)置中斷優(yōu)先級。單擊下圖紅圈處。在彈出的框中, 右邊部分為已經(jīng)連接到系統(tǒng)的中斷,定時

5、器Timer0中斷和Audio_IIC中斷已經(jīng)在右邊的中斷連接列表中。如下所示:其中Audio IIC中斷優(yōu)先級比Timer0的中斷優(yōu)先級要高。用戶可以根據(jù)需要點擊右邊的按鈕來重新排列中斷的優(yōu)先級。Rev1.00S6Siga-S16 開發(fā)板之定時器中斷實驗配置已經(jīng)完成后,需要保存工程,并重新對MicroBlaze系統(tǒng)進行編譯和生成Bitstream文件:Hardware->Generate Bitstream.更新后的Bitstream文件到FPGA:Device Configuration -> Download Bitstream.再重新Export Har

6、dware design to SDK。Rev1.00S7Siga-S16 開發(fā)板之定時器中斷實驗接下去就要進入SDK的中斷的開發(fā)和調(diào)試階段了。三、開發(fā)為定時器中斷的測試新建一個工程:FileNewXilinxC Project在工程向?qū)Ы缑孑斎腠椖棵Q hello_timer_int,再選擇 hello_world 工程模版。Rev1.00S8Siga-S16 開發(fā)板之定時器中斷實驗選擇TargetanexistingBoardSupportPackage,如下圖的紅色圈圈部分。點擊Finish,完成工程向?qū)?。Rev1.00S9Si

7、ga-S16 開發(fā)板之定時器中斷實驗回到SDK開發(fā)環(huán)境后在工程窗口會出現(xiàn)hello_timer_int的工程目錄:hello_timer_int的工程已經(jīng)建好了,接下去我們來編寫定時器中斷的測試程序。Rev1.00S10Siga-S16 開發(fā)板之定時器中斷實驗首先我們先修改一些代碼文件helloworld.c的名字,把它重命名為hello_timer_int.c。先一下我們這次定時器中斷實驗的內(nèi)容。首先在設(shè)置和觸發(fā)定時器,定時器開始計數(shù),當定時到設(shè)定值溢出并產(chǎn)生定時器中斷。這時CPU會跳轉(zhuǎn)到在定時器中斷處理,在處理改變?nèi)肿兞縞ount的值。相當于定時器發(fā)生一次中斷,cou

8、nt的數(shù)值就加1。 Count的數(shù)值會反映在開發(fā)板上的四個LED燈狀態(tài)上。接下來,我們來修改hello_timer_int.c的程序,在已經(jīng)添加了中文說明,大家能夠很容易了解每部分程序的功能。修改程序如下圖所示:Rev1.00S11Siga-S16 開發(fā)板之定時器中斷實驗首先來說明紅框1的代碼,這里調(diào)用了MicroBlaze系統(tǒng)的頭文件,這些頭文件中定義了我們在使用到的API函數(shù),我們就是通過調(diào)用這些API函數(shù)來設(shè)置或定時器,中斷器和GPIO器。另外還定義了兩個全局的變量GpioOutput和counter供程序使用。紅框2的代碼為定時器的中斷服務(wù)程序。MicroBlaze

9、如果有檢測到定時器中斷,自動跳入到此中斷服務(wù)程序執(zhí)行。在中斷服務(wù) 話Count加1并清除Timer0的中斷標志位。,先檢查是否是Timer0產(chǎn)生了中斷,是的紅框3的代碼是Main函數(shù)。完成中斷器的初始化,定時器的初始化和GPIO的的初始化。再進入While的循環(huán)把count的數(shù)值反映到led的顯示上。關(guān)于代碼部分,因為每一部分都有中文解釋,我們在這里不做具體義可以查看siga_bsp目錄下include文件夾里的頭文件。相關(guān)的API函數(shù)的定程序修改完成后我們來Debug或運行一下確認效果了,運行之前先保存工程,SDK會自動編譯一Rev1.00S12Siga-S16 開發(fā)板之定時器中斷實驗遍。沒有問題我們就開始運行程序:點擊菜單Run Run As 1 Launch on Hardware。如果你的開發(fā)板已經(jīng)連接了器而且在EDK中已經(jīng)了Bitstream文件,你就能看到開發(fā)板上的四個LED燈每隔一定時間變化。四個LED燈的狀態(tài)就是Count的數(shù)值。如果你想讓LED燈的變化更快一些,只要改變Timer0的初始值。因為定時器是配置成減數(shù)模式, 所以初始值越小,LED燈變化越快,初始值越大,LED燈變化越慢。到此為止,定時器中斷的實驗就講完了。定時器的中斷是學(xué)習中

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論