新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430F5529 (六)定時器Timer_A-1

        MSP430F5529 (六)定時器Timer_A-1

        作者: 時間:2016-11-28 來源:網絡 收藏

        TACLR位會自動復位并置0
        TAIE:定時器中斷使能
        0:中斷禁止
        1:中斷允許
        TAIFG:中斷標志位
        0:沒有中斷發生
        1:有中斷掛起

        6.2.2 計數值存放寄存器TAR
        ①顯然,最大存放計數值為0xFFFFh;
        ②(類似51單片機)可以被用來存放一個初值,然后選用連續模式。這樣不斷計滿再手動填充,從而達到精確計時的效果;
        ③默認為0,且對該寄存器可以直接賦值;

        6.2.3 擴展寄存器TAEX0
        很簡單,這個寄存器就是為了控制時鐘源的二次分頻(看結構圖)。
        該寄存器的低3為定義為TAIDEX:000-111分別表示1-8分頻

        6.2.4 捕獲/比較寄存器TACCR0-TACCR4(共5個)
        比較模式下,用來設定計數終值;
        捕獲模式下用來將捕獲的TAR值存放進TACCRx中。

        6.3 MC控制的四種工作模式的詳細講解

        6.3.1 MC=0停止模式
        這是系統默認的模式,定時計數器禁止工作。

        6.3.2 MC=1增模式
        總結幾句話:(紅色標記的很重要)
        ①此模式下嚴禁從0xffff開始計數;
        ②注意從0計到TACCR0,實際上記了TACCR0+1個數;
        ③計到TACCR0后,會回到0重新開始計數;
        ④如果TAR的值大于TACCR0,這時候會立即從0開始計數;
        ⑤當定時器計數到TACCR0的值時,中斷標志CCIFG位(之后會講到)置位。當定時器由TACCR0返回0時,TAIFG中斷標志置位;
        ⑥在定時器運行時修改TACCR0,如果新的周期值大于或等于舊的周期值,或大于當前的定時器計數值,那么定時器立刻開始執行新周期計數。如果新周期小于當前的計數值,那么定時器回到0。但是,在回到0之前會多一個額外的計數。

        6.3.3 MC=2連續模式
        在連續模式中,定時器重復計數到0FFFFH,然后重新從0開始增計數(除非每次重裝計數初值)。當定時器從0FFFFH到0時,TAIFG中斷標志置位。
        應用:連續模式下利用捕獲/比較器產生需要的時間間隔。原理是:計數在一直進行,捕獲器TACCRX中存有第一個計數終值,每次捕獲器計到TACCRX時,會產生中斷標志,我們可以在中斷服務函數中寫入一個計算好的下一個的計數終值,這樣無限計算和中斷下去,那么該捕獲器就會產生一個穩定的時間間隔序列。(其實吧,不明白也沒關系。就算明白了,也不好用,因為計算起來很麻煩而且也不好用)
        如圖:
        6.3.4 MC=3增減模式(常用于生成PWM波)
        ①該模式下,計數方向是固定的,即讓定時器停止后再重新啟動定時器,它就沿著停止時的計數方向和數值開始計數。如果不希望這樣,就需要將TACLR置位來清除方向。TACLR位也會清除TAR的值和定時器的時鐘分頻。
        ②此模式下置位情況如下圖:

        ③當定時器運行時,改變TACCR0的值,如果正處于減計數的情況,定時器會繼續減到0,新的周期在減到0后開始。
        如果正處于增計數狀態,新周期大于等于原來的周期,或比當前計數值要大,定時器會增計數到新的周期;如果新周期小于原來的周期,定時器立刻開始減計數,但是,在定時器開始減計數之前會多計一個數。

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 利津县| 印江| 临清市| 南川市| 定日县| 利川市| 昭平县| 怀远县| 屏东县| 平江县| 福海县| 婺源县| 贵阳市| 阿坝县| 蒙自县| 西畴县| 苍溪县| 封丘县| 太康县| 镇康县| 惠东县| 沭阳县| 开化县| 龙游县| 日土县| 汉源县| 文成县| 丰原市| 洪雅县| 勃利县| 习水县| 临猗县| 留坝县| 邻水| 溧水县| 岳阳县| 桃园县| 交城县| 清远市| 珠海市| 凤翔县|