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 值。