基于AT90S8515的定時(shí)計(jì)數(shù)器
AVR單片機(jī)的型號(hào)不同,定時(shí)/計(jì)數(shù)器的數(shù)量也不同。下面以AT90S8515單片機(jī)為例,介紹AVR單片機(jī)的定時(shí)/計(jì)數(shù)器。
AT90S8515有一個(gè)8位定時(shí)/計(jì)數(shù)器TCNTO和一個(gè)16位的定時(shí)/計(jì)數(shù)器TCNT1。二者均可對(duì)晶振時(shí)鐘CK、預(yù)定比例器時(shí)鐘源、或外部引腳脈沖進(jìn)行計(jì)數(shù)。
AT90S8515的預(yù)定比例器將晶振時(shí)鐘CK進(jìn)行8、64、256和1024分頻,分別為TCNTO、TCNT1提供不同頻率的時(shí)鐘源,包括:CK、CK/8、CK/64、CK/256、CK/1024、外部源EXTO、EXTI和停止。定時(shí)/控制寄存器TCCRO控制TCNTO的時(shí)鐘源,TCCRIA、TCCRIB控制TCNT1的時(shí)鐘源。定時(shí)/計(jì)數(shù)器溢出標(biāo)志位在TIFR寄存器中,中斷使能位在TIMSK寄存器中。
一、8位定時(shí)/計(jì)數(shù)器TCNTO
1.TCNTO控制寄存器-TCCROTCCRO的I/O寄存器地址為$33(RAM地址為$53),復(fù)位時(shí)值為O。
TCCRO的低3位CS02、CS01、CSOO為TCNTO的時(shí)鐘源選擇位(對(duì)應(yīng)關(guān)系如下表),高5位未用。
若用TO腳作時(shí)鐘源,須對(duì)數(shù)據(jù)方向控制寄存器進(jìn)行相應(yīng)設(shè)置。
2.定時(shí)/計(jì)數(shù)器TCNTOTCNTO的地址為$32($52),復(fù)位時(shí)值為O。
TCNTO是可讀寫的加計(jì)數(shù)器。若向TCNTO寫入時(shí)時(shí)鐘源正在工作,則數(shù)據(jù)寫入后繼續(xù)計(jì)數(shù)。
二、16位定時(shí)/計(jì)數(shù)器TCNT1
1.TCNT1有兩個(gè)輸出比較寄存器OCRIA、OCRIB,用于與TCNT1的計(jì)數(shù)值進(jìn)行比較。輸出比較功能包括:比較匹配后的計(jì)數(shù)器清O,及比較匹配輸出引腳上的各種操作。
TCNT1可用于8位、9位、10位的脈沖調(diào)制器。在此模式下,定時(shí)器和OCR1A、OCR1B具有集中脈沖雙抗誤操作獨(dú)立的PWM能力。
TCNT1具有輸入捕獲功能,由輸入捕獲引腳ICP上的信號(hào)激活。捕獲信號(hào)的設(shè)置由TCNTI的控制寄存器TCCR1B來(lái)定義。模擬比較器也可觸發(fā)該捕獲事件。
TCNT1具有輸入捕獲噪聲消除器。如果該功能允許,則在輸入捕獲事件激活前需要4次以上的采樣監(jiān)測(cè),輸入引腳信號(hào)以XTAL的時(shí)鐘頻率被采樣。
2.控制寄存器A-TCCRA TCCRA的地址為$2F($4F),復(fù)位時(shí)值為O,各位定義如下:
COMMlA1、COMMIAO為比較A輸出模式選擇,決定TCNT1在與OCRIA比較匹配之后的輸出引腳事件。輸出引腳事件影響OC1A,即輸出比較A(見(jiàn)上表)。
由于其對(duì)I/O口的可替換功能,此I/O口的方向控制位必須設(shè)為l,以便對(duì)輸出引腳進(jìn)行控制。
COMM1B1、COMM1BO為比較B輸出模式選擇,決定TCNT1在與OCRIB比較匹配之后的輸出引腳OCIB的事件(見(jiàn)上表)。
在PWM模式下,上述4位的功能不同(見(jiàn)PWM模式下的定時(shí)計(jì)數(shù)器1)。
改變以上四位時(shí),必須清除TIMSK中的中斷使能位來(lái)禁止輸出比較器中斷l(xiāng),否則將發(fā)生中斷。
PWM11、PWM10為脈沖寬度調(diào)制器選擇位(見(jiàn)下表)。
3.控制寄存器B-TCCRBTCCRB地址為$2E($4E),復(fù)位時(shí)值為O,各位定義如下: