X281xDSP——CPU定時器工作原理分析

CPU定時器工作原理分析

在這裏插入圖片描述

可以由圖看出有幾個寄存器:

  • 32位的定時器週期寄存器 PRDH:PRD
  • 32位的計數器寄存器TIMH:TIM
  • 16位的定時器分頻器寄存器TDDRH:TDDR
  • 16位預定標計數器PSCH:PSC

解釋:

  1. XH:X形式表示寄存器的方式
  2. 因爲X281x DSP的寄存器都是16位的,而CPU定時器是32位的,所以需要將2個16位的寄存器XH和X來表示32位的寄存器(XH表示高16位,X表示低16位)
  3. 通過圖我們可以類比的看出它其實有點想兩層for循環,即如下所示
int i,j;
for(i=0; i<100; i++)
	for(j=0; j<100; j++)
	{...}

下圖或許更能看出這種關係,上面框框爲外循環,下面框框爲內循環
在這裏插入圖片描述
在上面那個框中,在CPU定時器工作前,先根據需要計算好CPU定時器週期寄存器的值,然後給PRDH:PRD賦值,相當於for循環中的i=100。開始工作時將PRDH:PRD的值裝載入TIMH:TIM,然後沒來一個脈衝,減一,然後判斷是否爲0,則一直遞減,當爲0時輸出一箇中斷信號。所以一個CPU定時器週期所經歷的時間爲:(PRDH:PRD+1)*TIMCLK
而計數器存儲器TIMH:TIM多久減1是由下面框中PSCH:PSC多久爲0決定。同理可以得出TIMCLK = (TDDRH:TDDR+1)*SYSCLKOUT
綜上,假設系統時鐘SYSCLKOUT的值爲X(單位爲MHz),那麼CPU定時器一個週期所計量的時間爲T = (PRDH:PRD+1)*(TDDRH:TDDR+1)/ (X*10^6)(單位爲s)

發佈了116 篇原創文章 · 獲贊 58 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章