亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5052|回復(fù): 0
收起左側(cè)

DSP之時鐘與定時器之二通用定時器

[復(fù)制鏈接]
ID:88957 發(fā)表于 2017-5-21 18:11 | 顯示全部樓層 |閱讀模式

C55x DSP片內(nèi)有兩個2通用定時器,利用定時器可向CPU產(chǎn)生周期性中斷或向DSP片外的器件提供周期信號。其中TMS320VC5503/5507/5509/5510 DSP提供的是2個20位通用定時器.
1 結(jié)構(gòu)框圖
20位的定時器由兩部分組成:一個4位的預(yù)定標器(PSC)和一個16位的主計數(shù)器(TIM)。
定時器有兩個計數(shù)寄存器(PSC,TIM)和兩個周期寄存器(TDDR,PRD),在定時器初始化過程中,周期寄存器的內(nèi)容拷貝到計數(shù)寄存器中。
2 工作原理
    定時器的工作時鐘可以來自DSP內(nèi)部的CPU時鐘,也可以來自引腳TIN/TOUT。
    定時器控制寄存器(TCR)中的字段FUNC可以確定時鐘源和TIN/TOUT引腳的功能,這樣定時器的工作模式包括以下幾種:
當FUNC=00b時,TIN/TOUT為高阻態(tài),時鐘源是內(nèi)部時鐘(CPU時鐘)。
當FUNC=01b時,TIN/TOUT為定時器輸出,時鐘源是內(nèi)部時鐘(CPU時鐘)。
當FUNC=10b時,TIN/TOUT為通用輸出,時鐘源是內(nèi)部時鐘(CPU時鐘)。
當FUNC=11b時,TIN/TOUT為定時器輸入,時鐘源是外部時鐘。
     在定時器中,預(yù)定標器由輸入時鐘驅(qū)動,PSC在每個輸入時鐘周期減1,當其減到0時,TIM減1,當TIM減到0,定時器向CPU發(fā)送一個中斷請求(TINT)或向DMA控制器發(fā)送同步事件。定時器發(fā)送中斷信號或同步事件信號的頻率可用下式計算:
    TINT頻率 = 輸入時鐘頻率 /  (TDDR + 1) * (PRD+1)
    通過設(shè)置TCR中的自動重裝控制位ARB,可使定時器工作于自動重裝模式,當TIM減到0,重新將周期寄存器(TDDR,PRD)的內(nèi)容拷貝到計數(shù)寄存器(PSC,TIM)中,繼續(xù)定時。
每個定時器包括4個寄存器,即定時器預(yù)定標寄存器PRSC、主計數(shù)寄存器TIM、主周期寄存器PRD和定時器控制寄存器TCR。
3 使用方法
在定時器的工作過程中,要注意以下因素對定時器的影響。
1.初始化定時器
通用定時器的初始化過程如下:
(1)停止計時(TSS=1),定時器裝載使能(TLB=1),  并將周期寄存器(TIM,PSC)的內(nèi)容拷貝到計數(shù)寄存器(PRD,TDDR);
(2)將預(yù)定標計數(shù)周期數(shù)寫入TDDR;
(3)將主計數(shù)器周期數(shù)裝入PRD;
(4)關(guān)閉定時器裝載(TLB=0),啟動計時(TSS=0)。
2.停止/啟動定時器
利用時鐘控制寄存器中的TSS位可以停止或啟動定時器。
TSS=1,停止計時
TSS=0,啟動計時
3.DSP復(fù)位
DSP復(fù)位后定時器的寄存器將按照如下規(guī)則復(fù)位:
l停止定時(TSS=1);
預(yù)定標計數(shù)器值為0;
主計數(shù)器值為FFFFh;
定時器不進行自動重裝(ARB=0);
idle指令不能使定時器進入省電模式;
仿真時遇到軟件斷點定時器立即停止工作;
TIN/TOUT為高阻態(tài),時鐘源是內(nèi)部時鐘(FUNC=00b)。
4 通用定時器的應(yīng)用
如果使用芯片支持庫函數(shù)對通用定時器進行編程,則必須包含頭文件csl_timer.h。
        首先定義通用定時器句柄和配置結(jié)構(gòu):
TIMER_Handle hTimer;
TIMER_Config Config_TIMER = {
0X0310,
/*; 載入 TCR0t:
; IDLE_EN = 0 (不允許空閑狀態(tài))
; FUNC = 00b (引腳為高阻態(tài))
; TLB = 0 (TLB 被清除)
; FREE = 1 (遇到斷點時時鐘不停止)
; PWID = 00b (脈沖延遲一個 CPU 時鐘周期)
; ARB = 1 (當TIM計數(shù)到0時重新載入TIM和
; PSC)
; TSS = 1 (停止計數(shù)器)
; C/P = 0 (引腳輸出為脈沖模式)
; POLAR = 0 (引腳信號開始為低)
; 其他為0
*/
0X197,
/* prd = 407 */
0X0007
/*  prsc = 7 TDDR=7 */
//; 計數(shù)器每 3264(408*8) 個時鐘周期輸出:
};
接下來打開句柄:
hTimer = TIMER_open(TIMER_DEV0,0);//設(shè)置計數(shù)器0,中斷20K/s
          調(diào)用定時器配置函數(shù)對計數(shù)器初始化:
TIMER_config(hTimer,&Config_TIMER);
          調(diào)用定時器開始函數(shù)使定時器開始工作:
TIMER_start(hTimer);
           如果在程序中需要暫時停止定時器計數(shù)可以調(diào)用定時器停止函數(shù):
TIMER_stop(hTimer);
           當使能定時器中斷時,則當定時中斷發(fā)生時將運行定時中斷服務(wù)程序:
interrupt void Timer0_Isr()
{
……
}
5 通用定時器的調(diào)試
通用定時器可以產(chǎn)生定時中斷,或者作為DMA同步事件來同步DMA傳送,如果將通用定時器的輸出從通用定時器引腳引出,也可以為系統(tǒng)的其他部分提供定時。
        通用定時器的調(diào)試步驟如下:
設(shè)定通用定時器的時鐘源,通用定時器的時鐘源可以是CPU時鐘,也可由外部信號提供,如果選擇外部時鐘,則需要將這個信號從TIN/TOUT引腳引入,應(yīng)當注意此時TIN/TOUT引腳將不能夠作為定時器輸出使用;
正確設(shè)置定時器寄存器值,使定時器開始工作;
在定時器中斷服務(wù)程序中設(shè)置斷點,看能否進入定時中斷,如果定時器的時鐘源是CPU時鐘,這時也可以將定時器信號從TIN/TOUT引腳輸出,通過示波器檢測定時器輸出是否正常


相關(guān)帖子

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表