DSP實(shí)驗(yàn)-定時(shí)器中斷實(shí)驗(yàn)(共11頁(yè))_第1頁(yè)
DSP實(shí)驗(yàn)-定時(shí)器中斷實(shí)驗(yàn)(共11頁(yè))_第2頁(yè)
DSP實(shí)驗(yàn)-定時(shí)器中斷實(shí)驗(yàn)(共11頁(yè))_第3頁(yè)
DSP實(shí)驗(yàn)-定時(shí)器中斷實(shí)驗(yàn)(共11頁(yè))_第4頁(yè)
DSP實(shí)驗(yàn)-定時(shí)器中斷實(shí)驗(yàn)(共11頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)四定時(shí)器中斷實(shí)驗(yàn)一:實(shí)驗(yàn)?zāi)康?.熟悉定時(shí)器初始化的步驟;2.熟悉定時(shí)器控制寄存器(TCR)的含義和使用;3.熟悉定時(shí)器的原理和應(yīng)用。二:實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)要求編寫一個(gè)簡(jiǎn)單的定時(shí)器中斷程序,設(shè)置一定的周期控制與XF引腳相連的LCD指示燈。當(dāng)定時(shí)器中斷產(chǎn)生時(shí)可以觀察到LCD周期性閃爍。三:實(shí)驗(yàn)原理1.定時(shí)器SRESET.C54xx系列的DSP都具有一個(gè)或兩個(gè)預(yù)定標(biāo)的片內(nèi)定時(shí)器,這種定時(shí)器是一個(gè)倒數(shù)定時(shí)器,它可以被特定的狀態(tài)位實(shí)現(xiàn)停止、重啟動(dòng)、重設(shè)置或禁止。定時(shí)器在復(fù)位后就處于運(yùn)行狀態(tài),為了降低功耗可以禁止定時(shí)器工作。應(yīng)用中可以用定時(shí)器來(lái)產(chǎn)生周期性的CPU中斷或脈沖輸出。定

2、時(shí)器的功能方框圖如圖9.1所示,其中有一個(gè)主計(jì)數(shù)器(TIM)和一個(gè)預(yù)定標(biāo)計(jì)數(shù)器(PSC)。TIM用于重裝載周期寄存器PRD的值,PSC用于重裝載周期寄存器TDDR的值。圖5.1中有一個(gè) 信號(hào),是在器件復(fù)位時(shí),DSP向外圍電路(包括定時(shí)器)發(fā)送的一個(gè)信號(hào),此信號(hào)將在定時(shí)器上產(chǎn)生以下效果:寄存器TIM和PRD裝載最大值(0FFFFH);TCR的所有位清0;結(jié)果是分頻值為0,定時(shí)器啟動(dòng),TCR的FREE和SOFT為0。TSSCPU時(shí)鐘TRBRESET1PRDTIM錯(cuò)位值TDDRPSC錯(cuò)位值11TINTTOUT圖5.1定時(shí)器的功能方框圖定時(shí)器實(shí)際上是有20bit的周期寄存器。它對(duì)CLKOUT信號(hào)計(jì)數(shù),

3、先將PSC(TCR中的D6D9位)減1,直至PSC為0,然后把TDDR(TCR中的低4位)重新裝載入PSC,同時(shí)將TIM減1,直到TIM減為0。這時(shí)CPU發(fā)出TINT中斷,同時(shí)在TOUT引腳輸出一個(gè)脈沖信號(hào),脈沖寬度與CLKOUT一致,然后將PRD重新裝入TIM,重復(fù)TSS下去直到系統(tǒng)或定時(shí)器復(fù)位。定時(shí)器產(chǎn)生中斷的計(jì)算公式如下:1tc1TDDR+11PRD+1TINT的頻率 × × (其中tc為 CLKOUT的周期)定時(shí)器由三個(gè)寄存器組成:TIM、PRD、TCR。TIM:定時(shí)器寄存器,用于裝載周期寄存器值并自減1。PRD:周期寄存器,用于裝載定時(shí)器寄存器。TCR:定時(shí)器控制

4、寄存器,包含定時(shí)器的控制狀態(tài)位。定時(shí)器是一個(gè)片內(nèi)減計(jì)數(shù)器,用于周期地產(chǎn)生CPU中斷。定時(shí)器被預(yù)定標(biāo)計(jì)數(shù)器所觸發(fā),后者每個(gè)CPU時(shí)鐘周期減1,當(dāng)計(jì)數(shù)器減至0時(shí),會(huì)產(chǎn)生一個(gè)定時(shí)器中斷,同時(shí)在下一周期計(jì)數(shù)器被定時(shí)周期值重新裝載。在正常操作模式下,當(dāng)TIM自減至0時(shí),TIM將被PRD內(nèi)的數(shù)值重裝載。在硬件復(fù)位或定時(shí)器單獨(dú)復(fù)位(TCR中TRB位置1)的情況下,主定時(shí)器模塊輸出的是定時(shí)器中斷(TINT)信號(hào)。該中斷被發(fā)送至CPU,同時(shí)由TOUT引腳輸出。TOUT脈沖的寬度等于CLKOUT的時(shí)鐘寬度。預(yù)定標(biāo)模塊由兩個(gè)類似TIM和PRD的單元構(gòu)成。它們是預(yù)定標(biāo)計(jì)數(shù)器(PSC)和定時(shí)器分頻寄存器(TDDR)。P

5、SC、TDDR是RCR寄存器的字段。在正常操作時(shí)PSC自減為0,TDDR值裝入PSC,同樣在硬件復(fù)位或定時(shí)器單獨(dú)復(fù)位的情況下,TDDR也被裝入PSC。PSC被CPU時(shí)鐘定時(shí),即每個(gè)CPU時(shí)鐘使PSC自減1。PSC可被TCR讀取,但不能直接寫入。當(dāng)TSS置位時(shí),定時(shí)器停止工作。若不需要定時(shí)器,終止定時(shí)操作,可使芯片工作在低功耗模式,并且可以使用與定時(shí)器相關(guān)的兩個(gè)寄存器(TIM和PRD)作為通用的存儲(chǔ)器單元,可以在任意周期對(duì)它們進(jìn)行讀或?qū)懖僮鳌IM的當(dāng)前值可被讀取,PSC也可以通過(guò)TCR讀取。因?yàn)樽x取這兩個(gè)存儲(chǔ)器需要兩個(gè)指令,而在兩次讀取之間因?yàn)樽詼p,數(shù)值可能改變,因此,PSC兩次讀的結(jié)果可能有

6、差別,不夠準(zhǔn)確。若要準(zhǔn)確測(cè)量時(shí)序,在讀這兩個(gè)寄存器值之前可先中止定時(shí)器,對(duì)TSS置1和清0后,可重新開(kāi)始定時(shí)。通過(guò)TOUT信號(hào)或中斷,定時(shí)器可以用于產(chǎn)生周邊設(shè)備的采樣時(shí)鐘,如模擬接口。對(duì)于有多個(gè)定時(shí)器的DSP,由寄存器GPIOCR中的第15位控制使用某一個(gè)定時(shí)器產(chǎn)生的TOUT信號(hào)。2.定時(shí)器初始化(1)定時(shí)器初始化步驟TCR的TSS位寫1,定時(shí)器停止工作;裝載TRD;初始化TCR中的TDDR,并對(duì)TCR中的TSS置0,對(duì)TRB置1來(lái)重裝載定時(shí)器周期。(2)初始化定時(shí)器中斷方法(INTM1)FIR中的TINT寫1,以清除掛起的定時(shí)器中斷;IMR中的TINT置1,啟動(dòng)定時(shí)器中斷;啟動(dòng)全部中斷,IN

7、TM置0;在重啟(RESET)后,TIM和PRD被設(shè)置為最大值(FFFFH),TCR中的TDDR置0。(3)定時(shí)控制寄存器(TCR)TCR為一個(gè)映射到片內(nèi)的16位寄存器,它可以控制:定時(shí)器的工作方式;設(shè)定預(yù)定標(biāo)計(jì)數(shù)器中的當(dāng)前數(shù)值;啟動(dòng)或停止定時(shí)器;重新裝載定時(shí)器;設(shè)置定時(shí)器的分頻值。TCR的位描述如圖5.215121110965430ReservedSOFTFREEPSCTRBTSSTDDR圖5.2TCR位描述第1512位Reserved:保留位,總為0。第1110位SOFT、FREE:特殊的仿真位。高級(jí)語(yǔ)言調(diào)試程序中出現(xiàn)一個(gè)斷點(diǎn)時(shí),該仿真位決定定時(shí)器的狀態(tài)。如果FREE位設(shè)為1,則當(dāng)遇到一個(gè)

8、斷點(diǎn)時(shí),定時(shí)器繼續(xù)運(yùn)行(即自由運(yùn)行),在這種情況下,SOFT被忽略。但是,如果FREE為0,則SOFT有效。在此情況下,如果SOFT0,則定時(shí)器停止,下一次TIM的值遞減;如果SOFT1,則當(dāng)TIM減到0,定時(shí)器停止工作。第96位PSC:定時(shí)器預(yù)定標(biāo)計(jì)數(shù)器。這4位用來(lái)保存定時(shí)器的當(dāng)前預(yù)定標(biāo)計(jì)數(shù)器。每個(gè)CLKOUT周期內(nèi),若PSC值大于0,PSC減1,在PSC減到0后的下個(gè)CLKOUT周期內(nèi),裝載TDDR的內(nèi)容,并且TIM減1。每當(dāng)軟件設(shè)置了定時(shí)器重載位(TRB)時(shí),PSC也被重新裝載。可通過(guò)TCE檢測(cè)PSC,但PSC不能直接設(shè)置,PSC值必須從TDDR中提取。復(fù)位時(shí),PSC設(shè)為0。第5位TRB

9、:定時(shí)器重載位。當(dāng)TRB寫入1時(shí),TIM裝載PRD中的值,并且PSC裝載TDDR中的值。TRB位總被讀為0。第4位TSS:定時(shí)器停止?fàn)顟B(tài)位。TSS停止或重新啟動(dòng)定時(shí)器。復(fù)位時(shí),TSS清零,并且立即啟動(dòng)定時(shí)器。TSS0,啟動(dòng)或重新啟動(dòng)定時(shí)器;TSS1,停止定時(shí)。注意,此位為只讀位,讀出的值永遠(yuǎn)為0。第30位TDDR:定時(shí)器分頻比寄存器。每經(jīng)過(guò)(TDDR1)個(gè)CLKOUT周期,TIM減1。復(fù)位時(shí),TDDR位清0。如果想通過(guò)一個(gè)整數(shù)因子增加總的定時(shí)計(jì)數(shù)值,則將整數(shù)因子減1后寫入這4位。當(dāng)PCS值為0時(shí),在隨后的一個(gè)CLKOUT周期內(nèi),TDDR內(nèi)容將被重新裝入PSC,并且TIM減1。每當(dāng)TRB重載入時(shí)

10、,TDDR也將被PSC重新裝載。3:定時(shí)器應(yīng)用:C54x定時(shí)器所能計(jì)計(jì)時(shí)的長(zhǎng)度可通過(guò)公式Tx(TDDR+1)×(PRD+1)來(lái)計(jì)算,其中,TDDR最大值為0FH,PDR最大值為0FFFFH,所以能計(jì)時(shí)的最長(zhǎng)長(zhǎng)度為T×,由所采用的機(jī)器周期T決定,例如f4MHz,T=250,則最長(zhǎng)定時(shí)時(shí)間為:Tmax=250×=262.144(ms)例如若需要更長(zhǎng)的計(jì)時(shí)時(shí)間,則可以在中斷程序中設(shè)計(jì)一個(gè)計(jì)數(shù)器。設(shè)計(jì)一個(gè)周期為40s的方波,可將定時(shí)器設(shè)置為100ms,程序計(jì)數(shù)器設(shè)為200,當(dāng)計(jì)數(shù)200×100ms=20s時(shí)輸出取值一次,可形成所要求的波形。四:實(shí)驗(yàn)步驟本實(shí)驗(yàn)的步

11、驟為:(1)連接好實(shí)驗(yàn)板,選擇相應(yīng)的CCS運(yùn)行環(huán)境。(2)新建工程,添加TIME文件及其配制文件,用編譯鏈接工具條對(duì)文件進(jìn)行編譯鏈接,如果編譯鏈接錯(cuò)誤提示為“0Errors”,則把.out文件下載到目標(biāo)板,然后再單擊圖6.3中的運(yùn)行工具運(yùn)行程序,這時(shí)可以看到目標(biāo)板上和XF引腳的LED在周期性閃爍。(3)選擇菜單ViewCPU RegistersCPU Registers命令,可以觀察到累加器A在不斷加1,如圖5.3所示。 圖5.3 CPU 寄存器(4) 參考程序如下; .mmregs .global mainint ktcr .set 0029hktcrstop .set 0010h;TCR

12、定時(shí)器控制寄存器各位含義如下:;RES SOFT FREE PSC TRB TSS TDDR;00000 0 0000 1 0 (TSS=1時(shí)停止定時(shí)) 1001;*定時(shí)器參數(shù)定義*Tim0 .set 24h ;timer0 registerPrd0 .set 25h ; timer0 period counter Tcr0 .set 26h ; timer0 control registerperiod .set 99 ;定時(shí)器周期;* .sect "vectors";*中斷向量表*vector: b mainint nop nop nmi: rete nop nop n

13、opsint17: rete nop nop nopsint18: rete nop nop nopsint19: rete nop nop nopsint20: rete nop nop nopsint21: rete nop nop nopsint22: rete nop nop nopsint23: rete nop nop nopsint24: rete nop nop nopsint25: rete nop nop nopsint26: rete nop nop nopsint27: rete nop nop nopsint28: rete nop nop nopsint29: re

14、te nop nop nopsint30: rete nop nop nopint0: rete nop nop nopint1: rete nop nop nopint2: rete nop nop nop b tint0 nop nopbrint0: rete nop nop nopbxint0: rete nop nop noptrint: rete nop nop noptxint: rete nop nop nopint3: rete nop nop nophpint: rete nop nop nopq26: .word 0ff80h .word 0,0,0q27: .word 0

15、ff80h .word 0,0,0 q28: .word 0ff80h .word 0,0,0q29: .word 0ff80h .word 0,0,0q30: .word 0ff80h .word 0,0,0q31: .word 0ff80h .word 0,0,0;* .textmainint: stm #203FH,PMST ;從定位中斷向量表到2000H處 ssbx intm ;關(guān)中斷 ssbx sxm ssbx frct ;允許小數(shù)乘法 ld #0,dp stm #0008h,imr ;允許定時(shí)器0中斷;*;允許定時(shí)器0中斷,IMR 寄存器各位含義如下:;RES DMAC5 DMAC

16、4 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;* stm #ktcrstop,tcr ;停止定時(shí) stm #period,tim ;設(shè)定定時(shí)器寄存器 stm #period,prd ;設(shè)定定時(shí)器周期寄存器 stm #ktcr,tcr ;啟動(dòng)定時(shí)器 stm #0008h,imr ;允許TIMER0中斷 stm #0ffffh,ifr ;清中斷 rsbx intm ;開(kāi)中斷wait: nop ;循環(huán),等中斷 b wait;*定時(shí)器中斷程序*

17、;*tint0: add #1,A ;A寄存器加1操作 stm #20,*ar2 stm #20,*ar1aa: ssbx xf ;XF引腳置高,LCD亮 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8

18、000 ;重復(fù)8001次 nop ;等待 banz aa,*ar1-bb: rsbx xf ;XF引腳置低,LCD滅 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 rpt #8000 ;重復(fù)8001次 nop ;等待 banz bb ,*ar2- rete ;中斷返回.end配置文件如下:time.obj-otime.out-mtime.map-emainintMEMORYPAGE0:EPROM:org=2000h,len=1000hPAGE1:SPRAM:org=0060h,le

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論