定時器&PWM詳解(轉)


 

S3C2440定時器簡介:

      S3C2440一共有5個16位的定時器,其中定時器0、1、2、3有PWM(脈沖寬度調制)功能,它們都有一個輸出引腳(如TOUTn【n為0~3】),可以通過定時器來控制引腳周期性的高、低電平變化,但是定時器4沒有輸出引腳。

      定時器顧名思義需要時鍾去維持,那么它的時鍾源為PCLK,首先通過兩個8位的預分頻降低頻率,其中,定時器0共用第一個預分頻器,定時器2、3、4共用第二個預分頻器。預分頻器的輸出將進入第二級分頻器,它們輸出5種頻率的時鍾,2、4、8、16和TCLK0/1(外部時鍾),每個定時器的工作時鍾就是從這5種頻率中選擇得來的啦。

       8位預分頻是通過TCFG0寄存器來設置的,4位分頻是通過TCFG1來設置的。定時器的結構示意圖如下:

裸奔程序之定時器PWM - 23號的wj - 偉堅的博客
定時器的內部邏輯單元圖如下所示
定時器PWM詳解 - 23號的wj - 偉堅的博客
 定時器工作流程如下所示
定時器PWM詳解 - 23號的wj - 偉堅的博客
定時器PWM詳解 - 23號的wj - 偉堅的博客
 定時器操作的詳細例子
定時器PWM詳解 - 23號的wj - 偉堅的博客
定時器PWM詳解 - 23號的wj - 偉堅的博客
接下來我們來講解一下有關定時器的一些寄存器:
1、TCFG0寄存器(TIMER CONFIGURATION)
    位[7:0]、位[15:8]分別用於控制預分頻器0、1,它們的值可以設置為0~255,經過預分頻器出來的時鍾頻率為:PCLK/{ prescaler value +1}
定時器PWM詳解 - 23號的wj - 偉堅的博客
2、TCFG1寄存器(TIMER CONFIGURATION)
       經過預分頻器得到的時鍾將被2分頻、4分頻、8分頻、16分頻,除了這4種頻率外,額外低,定時器0、1還可以工作在外接的TCLK0時鍾下,定時器2、3、4還可以工作在外接的TCLK1下。
       通過TCFG1寄存器來設置這5個定時器,分別工作於這5種頻率中的哪一個頻率。所以定時器哦你工作的公式可以按照下面的計算:
       定時器工作頻率 = PCLK/{prescaler value + 1}/{driver value}.
       {prescaler value} = 0~255;
       {driver value} = 2、4、8、16;
定時器PWM詳解 - 23號的wj - 偉堅的博客
 
 3、TCNTBn/TCMPBn 寄存器
        n為0~4,這兩個寄存器都只用到位[15:0],TCNTBn中保存定時器的初始計數值,TCMPBn中保存比較值。它們的值在啟動定時器時,被傳到定時器內部寄存器TCNTn、TCMPn  中。
        注意:沒有TCMPB4,因為定時器4沒有輸出引腳。 這里僅列出TCNTB0和TCMPB0寄存器的一些參數:
定時器PWM詳解 - 23號的wj - 偉堅的博客
       要控制PWM的占空比就是控制TCMPBn這個寄存器:
定時器PWM詳解 - 23號的wj - 偉堅的博客
 
4、TCNTOn寄存器(COUNT OBSERVATION)
      n為0~4,定時器n被啟動后,內部寄存器TCNTn在其工作時鍾下不斷減1計數,我們可以通過讀取TCNTOn寄存器得知其值。
定時器PWM詳解 - 23號的wj - 偉堅的博客
5、TCON 寄存器(TIMER CONTROL)
它有以下4個作用:
(1)、第一次啟動定時器“手動”將TCNTBn/TCMPBn  寄存器的值裝入內部寄存器TCNTn、TCMPn中;
(2)、啟動、停止寄存器;
(3)、決定在定時器計數到達0時,是否自動將TCNTBn/TCMPBn 寄存器的值裝入內部寄存器TCNTn、TCMPn中,即是否啟動自動重載功能;
(4)、決定定時器輸出管腳TOUTn  的輸出電平是否反轉;
TCON寄存器位[3:0]、位[11:8]、位[15:12]、位[19:16]、位[22:20]分別用於定時器0~4,除了定時器4外沒有“輸出反轉”(因無輸出管腳),其他功能相似。下面以定時器0說明這些位的作用:
定時器PWM詳解 - 23號的wj - 偉堅的博客
        在第一次使用定時器時,需要設置“手動更新”位[1] ,為1,使得TCNTBn/TCMPBn寄存器的值裝入內部寄存器TCNTn、TCMPn中,如果下一次還要設置這一位,需要先將它清零。TCON(定時器控制寄存器)還要DMA、Dead Zone的設置,這里不常用,就不詳述了。

—————————————————————————————————————————————————————

到這里,定時器這一節我們就講解完畢啦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM