<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

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

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

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

            定時器/計數器相關寄存器:TIMSK:定時計數中斷屏蔽寄存器,TIFR:定時計數器中斷標志寄存器,ASSR:異步狀態寄存器,

                                                       SFIOR:特殊功能寄存器   

            T/C0相關寄存器 :TCCR0 :控制寄存器,TCNT0:計數寄存器,OCR0:輸出比較寄存器

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

                                        ICR1:輸入捕捉寄存器

            T/C2相關寄存器:TCCR2:控制寄存器 , TCNT2:計數寄存器,OCR2:輸出比較寄存器,  

         

         

         


         

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

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

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

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

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

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

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

         

         


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

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

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

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

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

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

         

         


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

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

         

         


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

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

                                               或者用來在OC0 引腳上產生波形。

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

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

         

         


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

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

                   上升沿觸發輸入捕捉。

         

         

         

         

         

         


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

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

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

                                     的值寫入ICR1 中。ICR1 的設定值可作為計數器的TOP 值。

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮