DSP實驗 定時器中斷實驗_第1頁
DSP實驗 定時器中斷實驗_第2頁
DSP實驗 定時器中斷實驗_第3頁
DSP實驗 定時器中斷實驗_第4頁
DSP實驗 定時器中斷實驗_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗四定時器中斷實驗一:實驗目的1.熟悉定時器初始化的步驟;2.熟悉定時器控制寄存器(TCR)的含義和使用;3.熟悉定時器的原理和應用。二:實驗內容本實驗要求編寫一個簡單的定時器中斷程序,設置一定的周期控制與XF引腳相連的LCD指示燈。當定時器中斷產(chǎn)生時可以觀察到LCD周期性閃爍。三:實驗原理1.定時器SRESET.C54xx 系列的 DSP 都具有一個或兩個預定標的片內定時器,這種定時器是一個倒數(shù)定時器,它可以被特定的狀態(tài)位實現(xiàn)停止、重啟動、重設置或禁止。定時器在復位后就處于運行狀態(tài),為了降低功耗可以禁止定時器工作。應用中可以用定時器來產(chǎn)生周期性的 CPU 中斷或脈沖輸出。定時器的功能方框圖

2、如圖 9.1 所示,其中有一個主計數(shù)器( TIM )和一個預定標計數(shù)器( PSC )。 TIM 用于重裝載周期寄存器 PRD 的值, PSC 用于重裝載周期寄存器 TDDR 的值。 圖5.1中有一個 信號,是在器件復位時,DSP向外圍電路(包括定時器)發(fā)送的一個信號,此信號將在定時器上產(chǎn)生以下效果:寄存器TIM和PRD裝載最大值(0FFFFH);TCR的所有位清0;結果是分頻值為0,定時器啟動,TCR的FREE和SOFT為0。圖5.1定時器的功能方框圖定時器實際上是有20bit的周期寄存器。它對CLKOUT信號計數(shù),先將PSC(TCR中的D6D9位)減1,直至PSC為0,然后把TDDR(TCR

3、中的低4位)重新裝載入PSC,同時將TIM減1,直到TIM減為0。這時CPU發(fā)出TINT中斷,同時在TOUT引腳輸出一個脈沖信號,脈沖寬度與CLKOUT一致,然后將PRD重新裝入TIM,重復 TSS下去直到系統(tǒng)或定時器復位。 定時器產(chǎn)生中斷的計算公式如下:1PRD+1TINT的頻率 × × (其中tc為 CLKOUT的周期定時器由三個寄存器組成:TIM、PRD、TCR。TIM:定時器寄存器,用于裝載周期寄存器值并自減1。PRD:周期寄存器,用于裝載定時器寄存器。TCR:定時器控制寄存器,包含定時器的控制狀態(tài)位。定時器是一個片內減計數(shù)器,用于周期地產(chǎn)生CPU中斷。定時器被預定

4、標計數(shù)器所觸發(fā),后者每個CPU時鐘周期減1,當計數(shù)器減至0時,會產(chǎn)生一個定時器中斷,同時在下一周期計數(shù)器被定時周期值重新裝載。在正常操作模式下,當TIM自減至0時,TIM將被PRD內的數(shù)值重裝載。在硬件復位或定時器單獨復位(TCR中TRB位置1)的情況下,主定時器模塊輸出的是定時器中斷(TINT)信號。該中斷被發(fā)送至CPU,同時由TOUT引腳輸出。TOUT脈沖的寬度等于CLKOUT的時鐘寬度。預定標模塊由兩個類似TIM和PRD的單元構成。它們是預定標計數(shù)器(PSC)和定時器分頻寄存器(TDDR)。PSC、TDDR是RCR寄存器的字段。在正常操作時PSC自減為0,TDDR值裝入PSC,同樣在硬件

5、復位或定時器單獨復位的情況下,TDDR也被裝入PSC。PSC被CPU時鐘定時,即每個CPU時鐘使PSC自減1。PSC可被TCR讀取,但不能直接寫入。當TSS置位時,定時器停止工作。若不需要定時器,終止定時操作,可使芯片工作在低功耗模式,并且可以使用與定時器相關的兩個寄存器(TIM和PRD)作為通用的存儲器單元,可以在任意周期對它們進行讀或寫操作。TIM的當前值可被讀取,PSC也可以通過TCR讀取。因為讀取這兩個存儲器需要兩個指令,而在兩次讀取之間因為自減,數(shù)值可能改變,因此,PSC兩次讀的結果可能有差別,不夠準確。若要準確測量時序,在讀這兩個寄存器值之前可先中止定時器,對TSS置1和清0后,可

6、重新開始定時。通過TOUT信號或中斷,定時器可以用于產(chǎn)生周邊設備的采樣時鐘,如模擬接口。對于有多個定時器的DSP,由寄存器GPIOCR中的第15位控制使用某一個定時器產(chǎn)生的TOUT信號。2.定時器初始化(1)定時器初始化步驟TCR的TSS位寫1,定時器停止工作;裝載TRD;初始化TCR中的TDDR,并對TCR中的TSS置0,對TRB置1來重裝載定時器周期。(2)初始化定時器中斷方法(INTM1)FIR中的TINT寫1,以清除掛起的定時器中斷;IMR中的TINT置1,啟動定時器中斷;啟動全部中斷,INTM置0;在重啟(RESET)后,TIM和PRD被設置為最大值(FFFFH),TCR中的TDDR

7、置0。(3)定時控制寄存器(TCR)TCR為一個映射到片內的16位寄存器,它可以控制:定時器的工作方式;設定預定標計數(shù)器中的當前數(shù)值;啟動或停止定時器;重新裝載定時器;設置定時器的分頻值。TCR的位描述如圖5.215121110965430ReservedSOFTFREEPSCTRBTSSTDDR圖5.2TCR位描述第1512位Reserved:保留位,總為0。第1110位SOFT、FREE:特殊的仿真位。高級語言調試程序中出現(xiàn)一個斷點時,該仿真位決定定時器的狀態(tài)。如果FREE位設為1,則當遇到一個斷點時,定時器繼續(xù)運行(即自由運行),在這種情況下,SOFT被忽略。但是,如果FREE為0,則S

8、OFT有效。在此情況下,如果SOFT0,則定時器停止,下一次TIM的值遞減;如果SOFT1,則當TIM減到0,定時器停止工作。第96位PSC:定時器預定標計數(shù)器。這4位用來保存定時器的當前預定標計數(shù)器。每個CLKOUT周期內,若PSC值大于0,PSC減1,在PSC減到0后的下個CLKOUT周期內,裝載TDDR的內容,并且TIM減1。每當軟件設置了定時器重載位(TRB)時,PSC也被重新裝載??赏ㄟ^TCE檢測PSC,但PSC不能直接設置,PSC值必須從TDDR中提取。復位時,PSC設為0。第5位TRB:定時器重載位。當TRB寫入1時,TIM裝載PRD中的值,并且PSC裝載TDDR中的值。TRB位

9、總被讀為0。第4位TSS:定時器停止狀態(tài)位。TSS停止或重新啟動定時器。復位時,TSS清零,并且立即啟動定時器。TSS0,啟動或重新啟動定時器;TSS1,停止定時。注意,此位為只讀位,讀出的值永遠為0。第30位TDDR:定時器分頻比寄存器。每經(jīng)過(TDDR1)個CLKOUT周期,TIM減1。復位時,TDDR位清0。如果想通過一個整數(shù)因子增加總的定時計數(shù)值,則將整數(shù)因子減1后寫入這4位。當PCS值為0時,在隨后的一個CLKOUT周期內,TDDR內容將被重新裝入PSC,并且TIM減1。每當TRB重載入時,TDDR也將被PSC重新裝載。3:定時器應用:C54x定時器所能計計時的長度可通過公式Tx(T

10、DDR+1×(PRD+1來計算,其中,TDDR最大值為0FH,PDR最大值為0FFFFH,所以能計時的最長長度為T×1048576,由所采用的機器周期T決定,例如f4MHz,T=250,則最長定時時間為:Tmax=250×1048576=262.144(ms例如若需要更長的計時時間,則可以在中斷程序中設計一個計數(shù)器。設計一個周期為40s的方波,可將定時器設置為100ms,程序計數(shù)器設為200,當計數(shù)200×100ms=20s時輸出取值一次,可形成所要求的波形。四:實驗步驟本實驗的步驟為:(1)連接好實驗板,選擇相應的CCS運行環(huán)境。(2)新建工程,添加T

11、IME文件及其配制文件,用編譯鏈接工具條對文件進行編譯鏈接,如果編譯鏈接錯誤提示為“0Errors”,則把.out文件下載到目標板,然后再單擊圖6.3中的運行工具運行程序,這時可以看到目標板上和XF引腳的LED在周期性閃爍。(3)選擇菜單ViewCPU RegistersCPU Registers命令,可以觀察到累加器A在不斷加1,如圖5.3所示。圖5.3 CPU 寄存器(4) 參考程序如下;.mmregs.global mainintktcr .set 0029hktcrstop .set 0010h;TCR 定時器控制寄存器各位含義如下:;RES SOFT FREE PSC TRB TSS

12、 TDDR;00000 0 0000 1 0 (TSS=1時停止定時) 1001;*定時器參數(shù)定義*Tim0 .set 24h ;timer0 registerPrd0 .set 25h ; timer0 period counter Tcr0 .set 26h ; timer0 control registerperiod .set 99 ;定時器周期;*.sect "vectors";*中斷向量表*vector: b mainintnopnopnmi: retenopnopnopsint17: rete nopnopnopsint18: rete nopnopnopsi

13、nt19: rete nopnopnopsint20: rete nopnopnopsint21: rete nopnopnopsint22: rete nopnopnopsint23: rete nopnopnopsint24: rete nopnopnopsint25: rete nopnopnopsint26: rete nopnopnopsint27: rete nopnopnopsint28: rete nopnopnopsint29: rete nopnopnopsint30: rete nopnopnopint0: rete nopnopnopint1: rete nopnopn

14、opint2: rete nopnopnopb tint0 nopnopbrint0: rete nopnopnopbxint0: rete nopnopnoptrint: rete nopnopnoptxint: rete nopnopnopint3: rete nopnopnophpint: rete nopnopnopq26: .word 0ff80h.word 0,0,0q27: .word 0ff80h.word 0,0,0 q28: .word 0ff80h.word 0,0,0q29: .word 0ff80h.word 0,0,0q30: .word 0ff80h.word 0

15、,0,0q31: .word 0ff80h.word 0,0,0;* .textmainint: stm #203FH,PMST ;從定位中斷向量表到2000H處ssbx intm ;關中斷ssbx sxmssbx frct ;允許小數(shù)乘法ld #0,dp stm #0008h,imr ;允許定時器0中斷;*;允許定時器0中斷,IMR 寄存器各位含義如下:;RES DMAC5 DMAC4 BXINT1 BRINT1 HINT INT3 TINT DMAC0 BXINT0 BRINT0 TINT0 INT2 INT1 INT0;00 0 0 0 0 0 0 0 0 0 0 1 0 0 0;*st

16、m #ktcrstop,tcr ;停止定時stm #period,tim ;設定定時器寄存器stm #period,prd ;設定定時器周期寄存器stm #ktcr,tcr ;啟動定時器stm #0008h,imr ;允許TIMER0中斷stm #0ffffh,ifr ;清中斷rsbx intm ;開中斷wait: nop ;循環(huán),等中斷b wait;*定時器中斷程序*;*tint0:add #1,A ;A寄存器加1操作stm #20,*ar2stm #20,*ar1aa:ssbx xf ;XF引腳置高,LCD亮rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復800

17、1次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待banz aa,*ar1-bb: rsbx xf ;XF引腳置低,LCD滅rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待rpt #8000 ;重復8001次nop ;等待banz bb ,*ar2-rete ;中斷返回.end配置文件如下:time.obj-o time.out-m time.map-e mainintMEMORYPAGE 0:EPROM :org=2000h,len=1000hPAGE 1:SPRAM :org=0060h,len=100h

溫馨提示

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

評論

0/150

提交評論