DSP2812課件第3講_第1頁
DSP2812課件第3講_第2頁
DSP2812課件第3講_第3頁
DSP2812課件第3講_第4頁
DSP2812課件第3講_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第8章 X281x的時鐘和系統(tǒng)控制手把手教你學(xué)DSP基于TMS320X281X北京航空航天大學(xué)出版社 作者:顧衛(wèi)鋼手把手教你學(xué)DSP基于TMS320X281X北京航空航天大學(xué)出版社 作者:顧衛(wèi)鋼8.1 振蕩器OSC和鎖相環(huán)PLL外部晶振或外部時鐘輸入信號XCLKINPLL模塊(由控制寄存器PLLCR控制PLL工作模式)CLKINCPU的時鐘信號CLKIN產(chǎn)生過程XCLKIN和CLKIN之間的關(guān)系PLL模式說明SYSCLKOUT或CLKIN禁止引腳置低來進(jìn)入該模式,PLL模塊完全不使能。此時,輸入CPU的時鐘由來自X1/XCLKIN引腳的時鐘信號直接去驅(qū)動。XCLKIN旁路如果PLL未處于不使能

2、的狀態(tài),這是上電默認(rèn)的PLL配置(PLLCR的值為0)。PLL自身被旁路,從X1/XCLKIN引腳輸入的時鐘信號先被/2,然后再送去CPU。XCLKIN/2使能通過給PLLCR寄存器寫一個不為0的值來實現(xiàn)PLL的使能,時鐘信號需要進(jìn)入PLL模塊進(jìn)行n倍頻,然后再被/2,最后送至CPU。(XCLKIN*n)/28.2 F2812中各種時鐘信號的產(chǎn)生由PLL模塊產(chǎn)生的CLKIN信號,經(jīng)過cpu分發(fā),作為SYSCLKOUT送至各個外設(shè)。SYSCLKOUT信號經(jīng)過低(高)速外設(shè)時鐘預(yù)定標(biāo)寄存器LOSPCP(HISPCP),變成LSPCLK(HSPCLK),提供給低速(高速)外設(shè)使能外設(shè)的時鐘信號Sys

3、CtrlRegs.PCLKCR.bit.SCIENCLKA=1; /使能外設(shè)SCIA的時鐘SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; /使能外設(shè)EVA的時鐘SysCtrlRegs.PCLKCR.bit.ADCENCLK=1; /使能外設(shè)ADC的時鐘在使用F2812進(jìn)行開發(fā)的時候,通常會用到一些外設(shè),要使得這些外設(shè)工作,首先就是要向其提供時鐘信號。假設(shè)現(xiàn)在某個項目里用到了EVA,SCIA和AD這3個外設(shè),那么就需要按照下面的程序?qū)@3個外設(shè)進(jìn)行時鐘使能:8.3 看門狗電路看門狗電路工作原理 由圖8-3可以看到,F(xiàn)2812的看門狗電路有一個8位的看門狗加法計數(shù)器WDCNT

4、R,當(dāng)WDCNTR計數(shù)到最大值時,看門狗模塊就會產(chǎn)生一個輸出脈沖,使得DSP復(fù)位。為了防止WDCNTR溢出,通常采用兩種方法:一種是禁止看門狗,使得計數(shù)器WDCNTR無效;另一種就是定期“喂狗”,通過軟件向負(fù)責(zé)復(fù)位看門狗計數(shù)器的看門狗秘鑰寄存器(8位的WDKEY)周期性的寫入0 x55+0 xAA,清除WDCNTR。8.4低功耗模式MODEIDLELPMCR(1:0)OSCCLKCLKINSYSCLKOUTEXIT退出或喚醒方式正常低X,X開開開空閑IDLE高0,0開開開,WAKEINTXNMI任何使能的中斷備用STANDBY高0,1開(看門狗仍在運行)關(guān)關(guān)SCIRXDA,SCIRXDB,CA

5、NRX,仿真調(diào)試暫停HALT高1,X關(guān)(振蕩器和PLL關(guān)閉,看門狗不工作)關(guān)關(guān)XNMI仿真調(diào)試8.5 時鐘和系統(tǒng)控制模塊的寄存器名稱地址地址空間(*16)說明Reserved0 x0000 70100 x0000 701910保留HISPCP0 x0000 701A1高速外設(shè)時鐘預(yù)定標(biāo)寄存器LOSPCP0 x0000 701B1低速外設(shè)時鐘預(yù)定標(biāo)寄存器PCLKCR0 x0000 701C1外設(shè)時鐘控制寄存器Reserved0 x0000 701D1保留LPMCR00 x0000 701E1低功耗模式控制寄存器0LPMCR10 x0000 701F1低功耗模式控制寄存器1Reserved0 x0

6、000 70201保留PLLCR0 x0000 70211PLL控制寄存器SCSR0 x0000 70221系統(tǒng)控制和狀態(tài)寄存器WDCNTR0 x0000 70231看門狗計數(shù)器寄存器Reserved0 x0000 70241保留WDKEY0 x0000 70251看門狗復(fù)位密鑰寄存器Reserved0 x0000 70260 x0000 70283保留WDCR0 x0000 70291看門狗控制寄存器Reserved0 x0000 702A0 x0000 702F6保留第10章 CPU定時器手把手教你學(xué)DSP基于TMS320X281X北京航空航天大學(xué)出版社 作者:顧衛(wèi)鋼10.1 CPU定時器

7、工作原理n定時器是用來準(zhǔn)確控制時間的。nX281x芯片內(nèi)部具有3個32位CPU定時器: Timer0、Timer1、Timer2。n用戶能用的定時器:Timer0。CPU定時器內(nèi)部結(jié)構(gòu)CPU定時器工作示意圖在CPU定時器工作前,先根據(jù)實際的需求,計算好CPU定時器周期寄存器的值,然后給周期寄存器PRDH:PRD賦值。當(dāng)啟動定時器開始計數(shù)時,周期寄存器PRDH:PRD里面的值裝載進(jìn)定時器計數(shù)寄存器TIMH:TIM中,并每隔一個TIMCLK就減小1,直到計數(shù)到0,完成一個計數(shù)周期,并產(chǎn)生一個中斷信號。CPU定時器一個周期所計量的時間假設(shè)系統(tǒng)時鐘SYSCLKOUT的值為X MHz,那么計數(shù)器每走一步

8、,所需要的時間為: 6TDDRH:TDDR1TIMCLK*10 sX因為CPU定時器一個周期計數(shù)了(PRDH:PRD+1)次,因此CPU定時器一個周期所計量的時間為: 6TDDRH:TDDR 1T(PRDH:PRD 1)*10 sXTIMCLK的計算:定時時間的計算:10.3 分析CPU定時器的配置函數(shù)DSP28_CpuTimers.h內(nèi)的一段代碼內(nèi)的一段代碼/定義了結(jié)構(gòu)體CPUTIMER_VARSstruct CPUTIMER_VARS volatile struct CPUTIMER_REGS *RegsAddr; /CPU定時器寄存器的起始地址 Uint32 InterruptCount

9、; /CPU定時器中斷統(tǒng)計計數(shù)器 float CPUFreqInMHz; /CPU頻率,以MHz為單位 float PeriodInUSec; /CPU定時器周期,以us為單位;extern struct CPUTIMER_VARS CpuTimer0; /聲明CPUTIMER_VARS型的結(jié)構(gòu)體CpuTimer0。/*名 稱:ConfigCpuTimer()*功 能:此函數(shù)將使用Freq和Period兩個參數(shù)來對CPU定時器進(jìn)行配置。Freq以MHz* 為單位,Period以us作為單位。*入口參數(shù):*Timer(指定的定時器),F(xiàn)req,Period*出口參數(shù):無*/void Config

10、CpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)Uint32 temp;Timer-CPUFreqInMHz = Freq;Timer-PeriodInUSec = Period;temp = (long) (Freq * Period);Timer-RegsAddr-PRD.all = temp; /給定時器周期寄存器賦值Timer-RegsAddr-TPR.all = 0; /給定時器預(yù)定標(biāo)寄存器賦值Timer-RegsAddr-TPRH.all = 0;/ 初始化定時器控制寄存器:Timer-RegsAddr-

11、TCR.bit.TIF=1; /清除中斷標(biāo)志位Timer-RegsAddr-TCR.bit.TSS = 1; /停止定時器 Timer-RegsAddr-TCR.bit.TRB = 1; /定時器重裝,將定時器周期寄存器的值裝入定時器計數(shù)器寄存器Timer-RegsAddr-TCR.bit.SOFT = 1;Timer-RegsAddr-TCR.bit.FREE = 1; Timer-RegsAddr-TCR.bit.TIE = 1; /使能定時器中斷Timer-InterruptCount = 0; /初始化定時器中斷計數(shù)器 ConfigCpuTimer(&CpuTimer0, 15

12、0, 1000000) Timer0 計時1s?Why? 假設(shè)DSP的時鐘SYSCLKOUT為X MHZ,想要實現(xiàn)的周期是Y s,則調(diào)用配置函數(shù)為ConfigCpuTimer(&CpuTimer0, X, Y*106)。根據(jù)函數(shù)的定義,可得:temp=Freq*Period=X*Y*106 CpuTimer0-RegsAddr-PRD.all = temp= X*Y*106 也就是說CPU定時器周期寄存器的值為X*Y*106 ,而在函數(shù)的定義內(nèi)又有:CpuTimer0-RegsAddr-TPR.all = 0 說明CPU定時0的分頻器TDDRH:TDDR的值為0。則根據(jù)前面的CPU定時

13、器的周期計算公式: 66(01)T(X*Y*101)*10 sYsX計算下來發(fā)現(xiàn),經(jīng)函數(shù) ConfigCpuTimer(&CpuTimer0, X, Y*106)配置后,CPU定時器的周期剛好為Ys。第11章 X2812的中斷系統(tǒng)手把手教你學(xué)DSP基于TMS320X281X北京航空航天大學(xué)出版社 作者:顧衛(wèi)鋼11.1 什么是中斷n在任何一款事件驅(qū)動型的CPU里面都應(yīng)該會有中斷系統(tǒng),因為中斷就是為響應(yīng)某種事件而存在的。n中斷的靈活應(yīng)用不僅能夠?qū)崿F(xiàn)想要實現(xiàn)的功能,而且合理的中斷安排可以提高事件執(zhí)行的效率,因此中斷在DSP應(yīng)用中的地位是非常重要的。 n中斷(Interrupt)是硬件和軟件驅(qū)

14、動事件,它使得CPU暫停當(dāng)前的主程序,并轉(zhuǎn)而去執(zhí)行一個中斷服務(wù)子程序。 中斷的生活實例F2812的三級中斷nCPU中斷nPIE中斷n外設(shè)中斷11.2 CPU中斷nX2812的中斷主要由兩種方式觸發(fā)。n一種是通過在軟件中寫指令,例如INTR、OR IFR或者TRAP指令。n另一種是硬件方式觸發(fā),例如來自于片內(nèi)外設(shè),或者外圍設(shè)備的中斷信號,表示某個事件已經(jīng)發(fā)生。 可屏蔽中斷和不可屏蔽中斷n可屏蔽中斷就是這些中斷可以用軟件加以屏蔽或者解除屏蔽。X2812片內(nèi)外設(shè)所產(chǎn)生的中斷都是可屏蔽中斷,每一個中斷都可以通過相應(yīng)寄存器的中斷使能位來禁止或者使能該中斷。 n不可屏蔽中斷就是這些中斷是不可以被屏蔽的,一

15、旦中斷申請信號發(fā)出,CPU必須無條件的立即去響應(yīng)該中斷并執(zhí)行相應(yīng)的中斷服務(wù)子程序。X281X的不可屏蔽中斷主要包括軟件中斷(INTR指令和TRAP指令等)、硬件中斷、非法指令陷阱以及硬件復(fù)位中斷。 CPU處理中斷的步驟11.2.2 CPU中斷向量和優(yōu)先級前面講解的是單個中斷請求的處理過程,那要是幾個中斷同時向CPU發(fā)出中斷請求,CPU該如何處理呢? 優(yōu)先級的簡單例子假如有一個醫(yī)生但是有兩個病人需要急診,一個出了車禍,性命攸關(guān),而另一個只是普通的感冒,這時候醫(yī)生會先診治哪個病人呢? 22位的CPU中斷向量n一共可以支持32個CPU中斷,其中每一個中斷都是一個32位的中斷向量 。中斷向量絕對地址優(yōu)

16、先級說明VMAP=0VMAP=1RESET00 0000h3F FFC0h1(最高)復(fù)位中斷INT100 0002h3F FFC2h5可屏蔽中斷1INT200 0004h3F FFC4h6可屏蔽中斷2INT300 0006h3F FFC6h7可屏蔽中斷3INT400 0008h3F FFC8h8可屏蔽中斷4INT500 000Ah3F FFCAh9可屏蔽中斷5INT600 000Ch3F FFCCh10可屏蔽中斷6INT700 000Eh3F FFCEh11可屏蔽中斷7INT800 0010h3F FFD0h12可屏蔽中斷8INT900 0012h3F FFD2h13可屏蔽中斷9INT1000

17、 0014h3F FFD4h14可屏蔽中斷10INT1100 0016h3F FFD6h15可屏蔽中斷11INT1200 0018h3F FFD8h16可屏蔽中斷12INT1300 001Ah3F FFDAh17可屏蔽中斷13INT1400 001Ch3F FFDCh18可屏蔽中斷14DLOGINT00 001Eh3F FFDEh19(最低)可屏蔽數(shù)據(jù)標(biāo)志中斷RTOSINT00 0020h3F FFE0h4可屏蔽實時操作系統(tǒng)中斷Reserved00 0022h3F FFE2h2保留NMI00 0024h3F FFE4h3不可屏蔽硬件中斷ILLEGAL00 0026h3F FFE6h非法指令捕獲

18、IER寄存器(中斷使能寄存器)IFR寄存器(中斷標(biāo)志寄存器)可屏蔽中斷的響應(yīng)過程多個中斷申請時CPU響應(yīng)過程n中斷A的優(yōu)先級高于中斷B的優(yōu)先級n中斷A和中斷B均已使能n全局中斷INTM也已經(jīng)使能n中斷A和中斷B同時提出申請,CPU如何處理?n如果CPU在執(zhí)行中斷A的服務(wù)子程序時,中斷A的標(biāo)志位又被置位了,那么CPU接下來會如何處理?11.3 PIE中斷2812的中斷源PIE的生活實例n好比一家大公司,每天會有很多員工向老總提交文件,請求老總處理。老總通常事務(wù)繁忙,他一個人沒有能力同時去處理所有的事情,那怎么辦呢? nX281X的CPU為了能夠及時有效的處理好各個外設(shè)的中斷請求,特別設(shè)計了一個“

19、秘書”專門處理外設(shè)中斷的擴展模塊(the Peripheral Interrupt Expansion Block),簡稱外設(shè)中斷控制器PIE,它能夠?qū)Ω鞣N中斷請求源(來自于外設(shè)或者其他外部引腳的請求)做出判斷和相應(yīng)的決策。 外設(shè)中斷在PIE中的分布PIE一共可以支持96個不同的中斷,并把這些中斷分成了12個組,每個組有8個中斷,而且每個組都被反饋到CPU內(nèi)核的INT1INT12這12條中斷線中的某一條上。平時能夠用到的所有的外設(shè)中斷都被歸入了這96個中斷中,被分布在不同的組里。 INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.1INT1WAKEI

20、NTTINT0ADCINTXINT2XINT1PDPINTBPDPINTAINT2T1OFINTT1UFINTT1CINTT1PINTCMP3INTCMP2INTCMP1INTINT3CAPINT3CAPINT2CAPINT1T2OFINTT2UFINTT2CINTT2PINTINT4T3OFINTT3UFINTT3CINTT3PINTCMP6INTCMP5INTCMP4INTINT5CAPINT6CAPINT5CAPINT4T4OFINTT4UFINTT4CINTT4PINTINT6MXINTMRINTSPITXINTASPIRXINTAINT7INT8INT9ECA1INTECAN0INT

21、SCITXINTBSCIRXINTBSCITXINTASCIRXINTAINT10INT11INT12表11-4 外設(shè)中斷在PIE的分布11.3.2 PIE中斷寄存器nPIE中斷使能寄存器(PIEIERx)nPIE標(biāo)志寄存器(PIEIFRx)nPIE應(yīng)答寄存器(PIEACK)nX=1,2,3.12n問題:CPU定時器0周期中斷TINT0位于PIE中斷寄存器的什么位置?PIE使能寄存器PIEIERxPIE標(biāo)志寄存器PIEIFRxPIE中斷應(yīng)答寄存器PIEACKPIE中斷向量表n相關(guān)控制信號n表11-7中斷向量表映像n正常情況下只使用PIE向量表映像n在DSP復(fù)位和程序引導(dǎo)完成后,用戶必須對PIE

22、向量表進(jìn)行初始化11.4三級中斷系統(tǒng)外設(shè)級n以CPU定時器T0的周期中斷為例。TIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位TIMER0TCR的第14位TIE=1?N向PIE發(fā)出中斷請求Yn以CPU定時器T0的周期中斷為例。TIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位TIMER0TCR的第14位TIE=1?N向PIE發(fā)出中斷請求YTIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位TIMER0TCR的第14位TIE=1?N向PIE發(fā)出中斷請求Yn以CPU定

23、時器T0的周期中斷為例。TIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位TIMER0TCR的第14位TIE=1?N向PIE發(fā)出中斷請求Y外設(shè)級手動操作的內(nèi)容n外設(shè)中斷的使能,需要將與該中斷相關(guān)的外設(shè)寄存器中的中斷使能位置1;n外設(shè)中斷的屏蔽,需要將與該中斷相關(guān)的外設(shè)寄存器中的中斷使能位置0;n外設(shè)中斷標(biāo)志位的清除,需要將與該中斷相關(guān)的外設(shè)寄存器中的中斷標(biāo)志位置1。n清除CPU定時器0中斷標(biāo)志位TIF的語句如下: CpuTimer0Regs.TCR.bit.TIF=1; /清除定時器中斷標(biāo)志位PIE級n以CPU定時器T0的周期中斷為例。TIMH:TI

24、M計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位n以CPU定時器T0的周期中斷為例。TIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位TIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位向CPU發(fā)出INT1中斷請求n以CPU定時器T0的周期中斷為例。TIMH:TIM計數(shù)到0向PIE提出中斷請求PIEIFR1.7被置位NPIEIER1.7=1?PIEIER1.7=1?PIEACK.1=1?NYTIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF

25、被置位TIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位TIMH:TIM計數(shù)到0TIMH:TIM計數(shù)到0TIMER0TCR寄存器的第15位TIF被置位向CPU發(fā)出INT1中斷請求n以CPU定時器T0的周期中斷為例。TIMH:TIM計數(shù)到0外設(shè)向PIE提出中斷請求PIEIFR1.7被置位NPIEIER1.7=1?PIEIER1.7=1?PIEACK.1=1?YPIE級手動操作的內(nèi)容nPIE中斷的使能。需要使能某個外設(shè)中斷,就得將其相應(yīng)組的使能寄存器PIEIERx的相應(yīng)位進(jìn)行置位;nPIE中斷的屏蔽。這是和使能相反的操作;nPIE應(yīng)答寄存器PIEACK相

26、關(guān)位的清除,以使得CPU能夠響應(yīng)同組內(nèi)的其他中斷。n清除PIEACK中與T0INT相關(guān)的應(yīng)答位的語句如下所示:nPieCtrl.PIEACK.bit.ACK1=1; /響應(yīng)PIE組1內(nèi)的其他中斷。CPU級PIE向CPU提出INT1中斷請求TIMER0TCR寄存器的第15位TIF被置位TIMER0TCR寄存器的第15位TIF被置位TIMER0TCR寄存器的第15位TIF被置位CPU響應(yīng)定時器T0周期中斷n以CPU定時器T0的周期中斷為例。IFR.1被置位NPIEIER1.7=1?IER.1=1?INTM=0?YN2812的中斷過程11.5 成功實現(xiàn)中斷的必要步驟第1步 外設(shè)初始化void Ini

27、tCpuTimers(void)CpuTimer0Regs.TCR.bit.TIE=1; /使能CPU定時器0的周期中斷 第2步 主函數(shù)中的處理void main(void) . .InitCpuTimers(); /初始化CPU定時器0 DINT; /禁止和清除所有CPU中斷 IER=0 x0000; IFR=0 x0000; InitPieCtrl(); /初始化中斷向量 InitPieVectTable(); /初始化中斷向量表 PieCtrl.PIEIER1.bit.INTx7 =1; /使能PIE模塊中的CPU定時器0的中斷 IER |=M_INT1; /開CPU中斷1 EINT;

28、/使能全局中斷 ERTM; /使能實時中斷第3步 中斷函數(shù)的處理interrupt void TINT0_ISR(void) / CPU-Timer0中斷函數(shù) CpuTimer0Regs.TCR.bit.TIF=1; /清除定時器中斷標(biāo)志位 PieCtrl.PIEACK.bit.ACK1=1; /響應(yīng)同組其他中斷 EINT; /開全局中斷第12章 事件管理器EV手把手教你學(xué)DSP基于TMS320X281X北京航空航天大學(xué)出版社 作者:顧衛(wèi)鋼12.1事件管理器EVnEvent Manager,簡稱EVn兩個事件管理器:EVA和EVBn通用定時器n全比較/PWM單元n捕獲單元n正交編碼電路EVA的

29、結(jié)構(gòu)框圖事件管理器模塊EVAEVB模塊信號引腳模塊信號引腳通用定時器定時器1T1PWM_T1CMP定時器3T3PWM_T3CMP定時器2T2PWM_T2CMP定時器4T4PWM_T4CMP比較單元比較單元1PWM1, PWM2比較單元4PWM7, PWM8比較單元2PWM3,PWM4比較單元5PWM9, PWM10比較單元3PWM5,PWM6比較單元6PWM11, PWM12捕獲單元捕獲單元1CAP1_QEP1捕獲單元4CAP4_QEP3捕獲單元2CAP2_QEP2捕獲單元5CAP5_QEP4捕獲單元3CAP3_QEPI1捕獲單元6CAP6_QEPI2QEP電路QEPCAP1_QEP1QEPC

30、AP4_QEP3CAP2_QEP2CAP5_QEP4CAP3_QEPI1CAP6_QEPI2外部定時器輸入計數(shù)方向TDIRA計數(shù)方向TDIRB外部時鐘TCLKINA外部時鐘TCLKINB事件管理器的模塊及信號的命名事件管理器的模塊及信號的命名事件管理器模塊EVAEVB模塊信號引腳模塊信號引腳外部定時器輸入計數(shù)方向TDIRA計數(shù)方向TDIRB外部時鐘TCLKINA外部時鐘TCLKINBExternal compare-output trip inputs 切斷比較單元輸出的外部控制輸入/C1TRIP/C4TRIP/C2TRIP/C5TRIP/C3TRIP/C6TRIPExternal timer

31、-compare trip inputs切斷定時比較輸出的外部控制輸入/T1CTRIP_/PDPINTA/T3CTRIP_/PDPINTB/T2CTRIP_EVASOC/T4CTRIP_EVBSOCExternal trip inputs功率驅(qū)動保護(hù)/T1CTRIP_/PDPINTA/T3CTRIP_/PDPINTB啟動外部ADC轉(zhuǎn)換/T2CTRIP_EVASOC/T4CTRIP_EVBSOC事件管理器的模塊及信號的命名(續(xù))事件管理器的模塊及信號的命名(續(xù))三類信號的說明nExternal compare-output trip inputs nExternal timer-compare

32、trip inputs nExternal trip inputs 12.2 通用定時器n每個事件管理器有兩個16位通用定時器。nEVA:T1、T2nEVB:T3、T4n通用定時器作用: 1.計時 2.使用定時器的比較功能產(chǎn)生PWM波 3.給其他子模塊提供時基通用定時器的結(jié)構(gòu)框圖當(dāng)x=2,y=1,n=2;當(dāng)x=4,y=3,n=4;陰影寄存器的作用nShadowed register-陰影寄存器定時器比較寄存器重載條件T1CONTCLD1 TCLD0 0 0 當(dāng)計數(shù)寄存器T1CNT=0 0 1 當(dāng)計數(shù)寄存器T1CNT的值為0或者等于 周期寄存器的值 1 0 立即載入 1 1 保留 12.2.1通

33、用定時器的時鐘圖12-4 時鐘脈沖TCLK原理OSCCLKSYSCLKOUTHSPCLKTCLK12.2.2通用定時器的計數(shù)模式定時器T1計數(shù)模式選擇T1CONTMODE1 TMODE0 0 0 停止/保持模式 0 1 連續(xù)增/減計數(shù)模式 1 0 連續(xù)增計數(shù)模式 1 1 定向增/減計數(shù)模式00停止/保持模式n當(dāng)TMODE的值為0時,定時器工作于停止/保持模式。在這種模式下,通用定時器停止計數(shù)并保持當(dāng)前的狀態(tài)。此時,定時器的計數(shù)寄存器T1CNT、比較輸出T1PWM_T1CMP將保持不變。01連續(xù)增/減計數(shù)模式當(dāng)TMODE的值為1時,定時器工作于連續(xù)增/減計數(shù)模式。 連續(xù)增/減計數(shù)模式時不同初始值

34、情況下的計數(shù)10連續(xù)增計數(shù)模式當(dāng)TMODE的值為2時,定時器工作于連續(xù)遞增計數(shù)模式。 連續(xù)增計數(shù)模式時不同初始值情況下的計數(shù)11定向增/減計數(shù)模式當(dāng)TMODE的值為3時,定時器工作于定向增/減計數(shù)模式。 12.2.3通用定時器的中斷事件n以T1為例n上溢中斷T1OFINTn下溢中斷T1UFINTn比較中斷T1CINTn周期中斷T1PINT上溢中斷 T1OFINTn當(dāng)T1CNT的值為0 xFFFF的時候,發(fā)生定時器T1的上溢中斷。n當(dāng)上溢事件發(fā)生后,再過1個定時器時鐘周期,則上溢中斷的標(biāo)志位被置位。n值得注意的是,這里的上溢事件和傳統(tǒng)的上溢概念有所區(qū)別,只要T1CNT的值為0 xFFFF,就會發(fā)生上溢中斷事件。n比如,初始化T1CNT的值為0 xFFFF,那么在啟動定時器工作的時候,就已經(jīng)產(chǎn)生了一個上溢中斷事件。下溢中斷 T1UFINTn當(dāng)T1CNT的值為0 x0000的時候,發(fā)生定時器T1的下溢中斷。n當(dāng)下溢事件發(fā)生后,再過1個定時器時鐘周期,則下溢中斷的標(biāo)志位被置位。n和上溢中斷一樣,

溫馨提示

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

評論

0/150

提交評論