久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
DSP之時鐘與定時器之二通用定時器
[打印本頁]
作者:
qq2512262471
時間:
2017-5-21 18:11
標題:
DSP之時鐘與定時器之二通用定時器
C55x DSP片內有兩個2通用定時器,利用定時器可向CPU產生周期性中斷或向DSP片外的器件提供周期信號。其中TMS320VC5503/5507/5509/5510 DSP提供的是2個20位通用定時器.
1 結構框圖
20位的定時器由兩部分組成:一個4位的預定標器(PSC)和一個16位的主計數器(TIM)。
定時器有兩個計數寄存器(PSC,TIM)和兩個周期寄存器(TDDR,PRD),在定時器初始化過程中,周期寄存器的內容拷貝到計數寄存器中。
2 工作原理
定時器的工作時鐘可以來自DSP內部的CPU時鐘,也可以來自引腳TIN/TOUT。
定時器控制寄存器(TCR)中的字段FUNC可以確定時鐘源和TIN/TOUT引腳的功能,這樣定時器的工作模式包括以下幾種:
當FUNC=00b時,TIN/TOUT為高阻態,時鐘源是內部時鐘(CPU時鐘)。
當FUNC=01b時,TIN/TOUT為定時器輸出,時鐘源是內部時鐘(CPU時鐘)。
當FUNC=10b時,TIN/TOUT為通用輸出,時鐘源是內部時鐘(CPU時鐘)。
當FUNC=11b時,TIN/TOUT為定時器輸入,時鐘源是外部時鐘。
在定時器中,預定標器由輸入時鐘驅動,PSC在每個輸入時鐘周期減1,當其減到0時,TIM減1,當TIM減到0,定時器向CPU發送一個中斷請求(TINT)或向DMA控制器發送同步事件。定時器發送中斷信號或同步事件信號的頻率可用下式計算:
TINT頻率 = 輸入時鐘頻率 / (TDDR + 1) * (PRD+1)
通過設置TCR中的自動重裝控制位ARB,可使定時器工作于自動重裝模式,當TIM減到0,重新將周期寄存器(TDDR,PRD)的內容拷貝到計數寄存器(PSC,TIM)中,繼續定時。
每個定時器包括4個寄存器,即定時器預定標寄存器PRSC、主計數寄存器TIM、主周期寄存器PRD和定時器控制寄存器TCR。
3 使用方法
在定時器的工作過程中,要注意以下因素對定時器的影響。
1.初始化定時器
通用定時器的初始化過程如下:
(1)停止計時(TSS=1),定時器裝載使能(TLB=1), 并將周期寄存器(TIM,PSC)的內容拷貝到計數寄存器(PRD,TDDR);
(2)將預定標計數周期數寫入TDDR;
(3)將主計數器周期數裝入PRD;
(4)關閉定時器裝載(TLB=0),啟動計時(TSS=0)。
2.停止/啟動定時器
利用時鐘控制寄存器中的TSS位可以停止或啟動定時器。
TSS=1,停止計時
TSS=0,啟動計時
3.DSP復位
DSP復位后定時器的寄存器將按照如下規則復位:
l停止定時(TSS=1);
預定標計數器值為0;
主計數器值為FFFFh;
定時器不進行自動重裝(ARB=0);
idle指令不能使定時器進入省電模式;
仿真時遇到軟件斷點定時器立即停止工作;
TIN/TOUT為高阻態,時鐘源是內部時鐘(FUNC=00b)。
4 通用定時器的應用
如果使用芯片支持庫函數對通用定時器進行編程,則必須包含頭文件csl_timer.h。
首先定義通用定時器句柄和配置結構:
TIMER_Handle hTimer;
TIMER_Config Config_TIMER = {
0X0310,
/*; 載入 TCR0t:
; IDLE_EN = 0 (不允許空閑狀態)
; FUNC = 00b (引腳為高阻態)
; TLB = 0 (TLB 被清除)
; FREE = 1 (遇到斷點時時鐘不停止)
; PWID = 00b (脈沖延遲一個 CPU 時鐘周期)
; ARB = 1 (當TIM計數到0時重新載入TIM和
; PSC)
; TSS = 1 (停止計數器)
; C/P = 0 (引腳輸出為脈沖模式)
; POLAR = 0 (引腳信號開始為低)
; 其他為0
*/
0X197,
/* prd = 407 */
0X0007
/* prsc = 7 TDDR=7 */
//; 計數器每 3264(408*8) 個時鐘周期輸出:
};
接下來打開句柄:
hTimer = TIMER_open(TIMER_DEV0,0);//設置計數器0,中斷20K/s
調用定時器配置函數對計數器初始化:
TIMER_config(hTimer,&Config_TIMER);
調用定時器開始函數使定時器開始工作:
TIMER_start(hTimer);
如果在程序中需要暫時停止定時器計數可以調用定時器停止函數:
TIMER_stop(hTimer);
當使能定時器中斷時,則當定時中斷發生時將運行定時中斷服務程序:
interrupt void Timer0_Isr()
{
……
}
5 通用定時器的調試
通用定時器可以產生定時中斷,或者作為DMA同步事件來同步DMA傳送,如果將通用定時器的輸出從通用定時器引腳引出,也可以為系統的其他部分提供定時。
通用定時器的調試步驟如下:
設定通用定時器的時鐘源,通用定時器的時鐘源可以是CPU時鐘,也可由外部信號提供,如果選擇外部時鐘,則需要將這個信號從TIN/TOUT引腳引入,應當注意此時TIN/TOUT引腳將不能夠作為定時器輸出使用;
正確設置定時器寄存器值,使定時器開始工作;
在定時器中斷服務程序中設置斷點,看能否進入定時中斷,如果定時器的時鐘源是CPU時鐘,這時也可以將定時器信號從TIN/TOUT引腳輸出,通過示波器檢測定時器輸出是否正常
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
殴美成人在线视频
|
中文字幕亚洲精品
|
成人在线播放网站
|
精品国产一区三区
|
av官网在线
|
午夜欧美
|
国产成人福利在线
|
成人国产精品免费观看
|
老司机深夜福利网站
|
精品久久久久久久久久久久久久
|
亚洲高清在线
|
欧美一区视频
|
三级特黄特色视频
|
欧美日韩综合一区
|
a毛片
|
国产精品国产亚洲精品看不卡15
|
伊人色综合久久久天天蜜桃
|
精品国产欧美
|
www.4虎影院 国产999精品久久久影片官网
|
中文字幕 国产精品
|
求个av网址
|
成人在线中文
|
亚洲美女网站
|
亚洲一区二区久久
|
国产伦精品
|
97caoporn国产免费人人
|
日韩在线电影
|
国产一区二区三区视频
|
久久精品小视频
|
国产真实乱对白精彩久久小说
|
日韩色在线
|
久久国产精品精品国产色婷婷
|
日韩免费一区
|
色av一区
|
人人澡人人射
|
久久久人成影片一区二区三区
|
久久国产视频网站
|
欧洲视频一区二区
|
日本亚洲欧美
|
成人亚洲片
|
色婷婷国产精品综合在线观看
|