




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實驗四定時器中斷實驗一:實驗?zāi)康?.熟悉定時器初始化的步驟;2.熟悉定時器控制寄存器(TCR)的含義和使用;3.熟悉定時器的原理和應(yīng)用。二:實驗內(nèi)容本實驗要求編寫一個簡單的定時器中斷程序,設(shè)置一定的周期控制與XF引腳相連的LCD指示燈。當定時器中斷產(chǎn)生時可以觀察到LCD周期性閃爍。三:實驗原理1.定時器SRESET.C54xx 系列的 DSP 都具有一個或兩個預(yù)定標的片內(nèi)定時器,這種定時器是一個倒數(shù)定時器,它可以被特定的狀態(tài)位實現(xiàn)停止、重啟動、重設(shè)置或禁止。定時器在復(fù)位后就處于運行狀態(tài),為了降低功耗可以禁止定時器工作。應(yīng)用中可以用定時器來產(chǎn)生周期性的 CPU 中斷或脈
2、沖輸出。定時器的功能方框圖如圖 9.1 所示,其中有一個主計數(shù)器( TIM )和一個預(yù)定標計數(shù)器( PSC )。 TIM 用于重裝載周期寄存器 PRD 的值, PSC 用于重裝載周期寄存器 TDDR 的值。 圖5.1中有一個 信號,是在器件復(fù)位時,DSP向外圍電路(包括定時器)發(fā)送的一個信號,此信號將在定時器上產(chǎn)生以下效果:寄存器TIM和PRD裝載最大值(0FFFFH);TCR的所有位清0;結(jié)果是分頻值為0,定時器啟動,TCR的FREE和SOFT為0。圖5.1定時器的功能方框圖定時器實際上是有20bit的周期寄存器。它對CLKOUT信號計數(shù),先將PSC(TCR中的D6D9位)減1,直至PSC為
3、0,然后把TDDR(TCR中的低4位)重新裝載入PSC,同時將TIM減1,直到TIM減為0。這時CPU發(fā)出TINT中斷,同時在TOUT引腳輸出一個脈沖信號,脈沖寬度與CLKOUT一致,然后將PRD重新裝入TIM,重復(fù) TSS下去直到系統(tǒng)或定時器復(fù)位。 定時器產(chǎn)生中斷的計算公式如下:1PRD+1TINT的頻率 (其中tc為 CLKOUT的周期定時器由三個寄存器組成:TIM、PRD、TCR。TIM:定時器寄存器,用于裝載周期寄存器值并自減1。PRD:周期寄存器,用于裝載定時器寄存器。TCR:定時器控制寄存器,包含定時器的控制狀態(tài)位。定時器是一個片內(nèi)減計數(shù)器,用于周期地產(chǎn)生CPU中斷。定時器被預(yù)定標
4、計數(shù)器所觸發(fā),后者每個CPU時鐘周期減1,當計數(shù)器減至0時,會產(chǎn)生一個定時器中斷,同時在下一周期計數(shù)器被定時周期值重新裝載。在正常操作模式下,當TIM自減至0時,TIM將被PRD內(nèi)的數(shù)值重裝載。在硬件復(fù)位或定時器單獨復(fù)位(TCR中TRB位置1)的情況下,主定時器模塊輸出的是定時器中斷(TINT)信號。該中斷被發(fā)送至CPU,同時由TOUT引腳輸出。TOUT脈沖的寬度等于CLKOUT的時鐘寬度。預(yù)定標模塊由兩個類似TIM和PRD的單元構(gòu)成。它們是預(yù)定標計數(shù)器(PSC)和定時器分頻寄存器(TDDR)。PSC、TDDR是RCR寄存器的字段。在正常操作時PSC自減為0,TDDR值裝入PSC,同樣在硬件復(fù)
5、位或定時器單獨復(fù)位的情況下,TDDR也被裝入PSC。PSC被CPU時鐘定時,即每個CPU時鐘使PSC自減1。PSC可被TCR讀取,但不能直接寫入。當TSS置位時,定時器停止工作。若不需要定時器,終止定時操作,可使芯片工作在低功耗模式,并且可以使用與定時器相關(guān)的兩個寄存器(TIM和PRD)作為通用的存儲器單元,可以在任意周期對它們進行讀或?qū)懖僮鳌IM的當前值可被讀取,PSC也可以通過TCR讀取。因為讀取這兩個存儲器需要兩個指令,而在兩次讀取之間因為自減,數(shù)值可能改變,因此,PSC兩次讀的結(jié)果可能有差別,不夠準確。若要準確測量時序,在讀這兩個寄存器值之前可先中止定時器,對TSS置1和清0后,可重
6、新開始定時。通過TOUT信號或中斷,定時器可以用于產(chǎn)生周邊設(shè)備的采樣時鐘,如模擬接口。對于有多個定時器的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被設(shè)置為最大值(FFFFH),TCR中的TDDR置
7、0。(3)定時控制寄存器(TCR)TCR為一個映射到片內(nèi)的16位寄存器,它可以控制:定時器的工作方式;設(shè)定預(yù)定標計數(shù)器中的當前數(shù)值;啟動或停止定時器;重新裝載定時器;設(shè)置定時器的分頻值。TCR的位描述如圖5.215121110965430ReservedSOFTFREEPSCTRBTSSTDDR圖5.2TCR位描述第1512位Reserved:保留位,總為0。第1110位SOFT、FREE:特殊的仿真位。高級語言調(diào)試程序中出現(xiàn)一個斷點時,該仿真位決定定時器的狀態(tài)。如果FREE位設(shè)為1,則當遇到一個斷點時,定時器繼續(xù)運行(即自由運行),在這種情況下,SOFT被忽略。但是,如果FREE為0,則SO
8、FT有效。在此情況下,如果SOFT0,則定時器停止,下一次TIM的值遞減;如果SOFT1,則當TIM減到0,定時器停止工作。第96位PSC:定時器預(yù)定標計數(shù)器。這4位用來保存定時器的當前預(yù)定標計數(shù)器。每個CLKOUT周期內(nèi),若PSC值大于0,PSC減1,在PSC減到0后的下個CLKOUT周期內(nèi),裝載TDDR的內(nèi)容,并且TIM減1。每當軟件設(shè)置了定時器重載位(TRB)時,PSC也被重新裝載??赏ㄟ^TCE檢測PSC,但PSC不能直接設(shè)置,PSC值必須從TDDR中提取。復(fù)位時,PSC設(shè)為0。第5位TRB:定時器重載位。當TRB寫入1時,TIM裝載PRD中的值,并且PSC裝載TDDR中的值。TRB位總
9、被讀為0。第4位TSS:定時器停止狀態(tài)位。TSS停止或重新啟動定時器。復(fù)位時,TSS清零,并且立即啟動定時器。TSS0,啟動或重新啟動定時器;TSS1,停止定時。注意,此位為只讀位,讀出的值永遠為0。第30位TDDR:定時器分頻比寄存器。每經(jīng)過(TDDR1)個CLKOUT周期,TIM減1。復(fù)位時,TDDR位清0。如果想通過一個整數(shù)因子增加總的定時計數(shù)值,則將整數(shù)因子減1后寫入這4位。當PCS值為0時,在隨后的一個CLKOUT周期內(nèi),TDDR內(nèi)容將被重新裝入PSC,并且TIM減1。每當TRB重載入時,TDDR也將被PSC重新裝載。3:定時器應(yīng)用:C54x定時器所能計計時的長度可通過公式Tx(TD
10、DR+1(PRD+1來計算,其中,TDDR最大值為0FH,PDR最大值為0FFFFH,所以能計時的最長長度為T,由所采用的機器周期T決定,例如f4MHz,T=250,則最長定時時間為:Tmax=250=262.144(ms例如若需要更長的計時時間,則可以在中斷程序中設(shè)計一個計數(shù)器。設(shè)計一個周期為40s的方波,可將定時器設(shè)置為100ms,程序計數(shù)器設(shè)為200,當計數(shù)200100ms=20s時輸出取值一次,可形成所要求的波形。四:實驗步驟本實驗的步驟為:(1)連接好實驗板,選擇相應(yīng)的CCS運行環(huán)境。(2)新建工程,添加TIME文件及其配制文件,用編譯鏈接工具條對文件進行編譯鏈接,如果編譯鏈接錯誤提
11、示為“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 TDDR;00000 0 0000 1 0 (TSS=1時停止定時) 100
12、1;*定時器參數(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 nopnopnopsint19: rete nopnopnopsint20: rete nopnopnopsint21: r
13、ete nopnopnopsint22: rete nopnopnopsint23: rete nopnopnopsint24: rete nopnopnopsint25: rete nopnopnopsint26: rete nopnopnopsint27: rete nopnopnopsint28: rete nopnopnopsint29: rete nopnopnopsint30: rete nopnopnopint0: rete nopnopnopint1: rete nopnopnopint2: rete nopnopnopb tint0 nopnopbrint0: rete no
14、pnopnopbxint0: 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,0,0q31: .word 0ff80h.word 0,0,0;* .textmainint: st
15、m #203FH,PMST ;從定位中斷向量表到2000H處ssbx intm ;關(guān)中斷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;*stm #ktcrstop,tcr ;停止定時stm #period,tim ;設(shè)定定時器寄存器stm #
16、period,prd ;設(shè)定定時器周期寄存器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 ;重復(fù)8001次nop ;等待rpt #8000 ;重復(fù)8001次nop ;等待rpt #8000 ;重復(fù)8001次nop ;等待rpt #8000 ;重復(fù)8001
17、次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 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-o time.out-m time.map-e mainintMEMORYPAGE 0:EPROM :org=2000h,len=1000hPAGE 1:SPRA
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融科技下的資產(chǎn)托管服務(wù)創(chuàng)新與優(yōu)化
- 跨領(lǐng)域研究中如何進行綜合性的學(xué)術(shù)匯報
- 初中語文生活美文內(nèi)心不平靜就不會幸福
- 河北省2024-2025學(xué)年高二化學(xué)寒假作業(yè)5無答案
- 高中語文情感美文楓紅一片染深秋
- 通過高科技助力企業(yè)的快速信任關(guān)系的構(gòu)建方式探討
- 新課標2025版高考物理二輪復(fù)習專題二第2講機械能守恒定律功能關(guān)系精練含解析
- 貴州2025年02月貴州省林業(yè)局直屬事業(yè)單位公開招考17名工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 高中語文作文作一條痛苦的反向延長線
- 部編版四年級道德與法治下冊全冊教案
- 2025年黑龍江農(nóng)墾職業(yè)學(xué)院單招職業(yè)傾向性測試題庫完整
- 2025年黑龍江旅游職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫附答案
- 《多彩的節(jié)日民俗》(教學(xué)設(shè)計)浙教版四年級下冊綜合實踐活動
- 2025年黃河水利職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫新版
- 2025年健康咨詢管理服務(wù)合同范文
- 光學(xué)鏡片透光率測量基準
- 歷史-貴州省貴陽市2025年高三年級適應(yīng)性考試(一)(貴陽一模)試題和答案
- 2025年01月2025全國婦聯(lián)所屬在京事業(yè)單位公開招聘93人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 輻射安全管理測試題含答案
- 2025年北京社會管理職業(yè)學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 信息系統(tǒng)項目計劃書
評論
0/150
提交評論