專注電子技術(shù)學(xué)習(xí)與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

單片機avr 定時器/計數(shù)器(一)

作者:海盜工作室   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月28日   【字體:
單片機的定時器/計數(shù)器實質(zhì) 就是一個加1計數(shù)器,通過軟件對其控制寄存器的操作,來實現(xiàn)定時,計數(shù)功能及轉(zhuǎn)換。 當定時器/計數(shù)器為定時工作方式時,計數(shù)器的加1信號由振蕩器的分頻信號產(chǎn)生,即每過一個機器周期,計數(shù)器加1,直至計滿溢出為止。 當定時器/計數(shù)器為計數(shù)工作方式時,通過引腳T0和T1對外部信號計數(shù),當電平變化時,計數(shù)器加1.定時器/計數(shù)器使用靈活,用途廣泛,如延時,物理信號的測量,信號的周期,頻率,脈寬測量,產(chǎn)生定時脈沖信號,捕捉輸入,還可以實現(xiàn)PWM輸出,用于D/A ,電動機的無極調(diào)速等。

       ATmega16 三個定時器/計數(shù)器T/C0,T/C1,T/C2,其中T/C0,T/C2為8位定時器/計數(shù)器,T/C1是16位定時器/計數(shù)器。

    定時器/計數(shù)器相關(guān)寄存器:TIMSK:定時計數(shù)中斷屏蔽寄存器,TIFR:定時計數(shù)器中斷標志寄存器,ASSR:異步狀態(tài)寄存器,

                                               SFIOR:特殊功能寄存器   

    T/C0相關(guān)寄存器 :TCCR0 :控制寄存器,TCNT0:計數(shù)寄存器,OCR0:輸出比較寄存器

    T/C1相關(guān)寄存器: TCCR1A,TCCR1B:控制寄存器,TCNT1(TCNT1H,TCNT1L)計數(shù)寄存器,OCR1A,OCR1B:輸出比較寄存器,

                                ICR1:輸入捕捉寄存器

    T/C2相關(guān)寄存器:TCCR2:控制寄存器 , TCNT2:計數(shù)寄存器,OCR2:輸出比較寄存器,  

 

 

 


 

  溢出中斷:以定時器/計數(shù)器T/C0為例,T/C0為8位定時器,計數(shù)范圍為十六進制0x00-0xFF,對應(yīng)的十進制為0-255,由0開始計數(shù),

                   當計數(shù)值超過255時 就產(chǎn)生一個中斷,中斷標準寄存器TIFR的TOV0(T/C0的溢出標準位)置1。

比較中斷:當T/C0的計數(shù)寄存器TCNT0的數(shù)值,和預(yù)置的OCR0的數(shù)值一致時,將產(chǎn)生一個比較中斷,中斷標志寄存器TIFR的

                   OCF0(T/C0的比較中斷標志位)置1。

T/C0溢出中斷使能過程:

           1、中斷總使能: SREG=0x80;

           2、T/C0的溢出中斷使能:將中斷使能寄存器的T/C0溢出中斷使能位TOIE0置1,c語言: TIMSK|=0x01;當產(chǎn)生溢出中斷時,硬件自動將中斷標志寄存器TIFR的TOVO(T/C0溢出中斷標志)位置1,用于軟件查詢判斷,執(zhí)行完中斷處理程序后,由硬件自動清0。

 

 


普通模式:  普通模式(WGM01:0 = 0) 為最簡單的工作模式。在此模式下計數(shù)器不停地累加。計到8 比特的最大值后(TOP = 0xFF),

                     由于數(shù)值溢出,計數(shù)器簡單地返回到最小值0x00 重新開始
CTC(比較匹配時清0定時器):在CTC 模式(WGM01:0 = 2) 下OCR0 寄存器用于調(diào)節(jié)計數(shù)器的分辨率。當計數(shù)器的數(shù)值TCNT0等于

                     OCR0時計數(shù)器清零。OCR0定義了計數(shù)器的TOP值,亦即計數(shù)器的分辨率。
快速PWM :快速PWM 模式(WGM01:0 = 3) 可用來產(chǎn)生高頻的PWM 波形。快速PWM 模式與其他PWM模式的不同之處是其單斜坡

                     工作方式。計數(shù)器從BOTTOM計到MAX,然后立即回到BOTTOM重新開始

相位修正PWM :相位修正PWM 模式(WGM01:0 = 1) 為用戶提供了一個獲得高精度相位修正PWM 波形的方法。此模式基于雙斜坡

                      操作。計時器重復(fù)地從BOTTOM 計到MAX,然后又從MAX倒退回到BOTTOM。

 

 


定時器/計數(shù)器的工作必須指定時鐘源,無時鐘源定時器不能工作。時鐘源有內(nèi)部時鐘源和外部時鐘源,由CS02,CS01,CS00位選擇。

外部時鐘源由T0引腳輸入。

 

 


OC0為T/C0的輸出引腳,即設(shè)置當TNCT0和OCR0數(shù)值相等時,外部輸出引腳OC0上的電平變化。

TCNT0-計數(shù)寄存器:通過它 寄存器可以直接對計數(shù)器的8 位數(shù)據(jù)進行讀寫訪問。
OCR0-輸出比較寄存器  : 包含一個8 位的數(shù)據(jù),不間斷地與計數(shù)器數(shù)值TCNT0 進行比較。匹配事件可以用來產(chǎn)生輸出比較中斷,

                                       或者用來在OC0 引腳上產(chǎn)生波形。

T/C1 真正的16位定時器/計數(shù)器,能夠輸出16位的PWM,有兩個獨立的輸出比較單元。具有輸入捕捉功能。

捕捉輸入:用于精確捕捉一個外部事件的發(fā)生,記錄事件發(fā)生的時間印記,如:精確測量脈沖寬度。

 

 


FOC1A/FOC1B只有當WGM13:0指定為非PWM模式時被激,對其寫1后,波形發(fā)生器將立即進行比較操作。

ICES1:該位選擇使用ICP1 上的哪個邊沿觸發(fā)捕獲事件。ICES 為"0” 選擇的是下降沿觸發(fā)輸入捕捉; ICES1 為"1” 選擇的是邏輯電平的

           上升沿觸發(fā)輸入捕捉。

 

 

 

 

 

 


輸出比較寄存器1A :16位,由OCR1AH,OCR1AL組成

輸出比較寄存器1B:16位,由OCR1BH,OCR1BL組成

          該寄存器中的16 位數(shù)據(jù)與TCNT1 寄存器中的計數(shù)值進行連續(xù)的比較,一旦數(shù)據(jù)匹配,將
產(chǎn)生一個輸出比較中斷,或改變OC1x 的輸出邏輯電平。
輸入捕捉寄存器:16位,由ICR1H,ICR1L組成,當外部引腳ICP1(或T/C1的模擬比較器)有輸入捕捉觸發(fā)信號產(chǎn)生時,計數(shù)器TCNT1中

                             的值寫入ICR1 中。ICR1 的設(shè)定值可作為計數(shù)器的TOP 值。

關(guān)閉窗口

相關(guān)文章