日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]CTC:比較匹配時清零計數(shù)器模式,。當(dāng)計數(shù)器TCNT0的數(shù)值等于比較寄存器OCR0時計數(shù)器TCNT0自動清零。OCR0定義了計數(shù)器的最大(TOP)值,這個模式使得用戶可以很容易地控制比較匹配輸出的頻率。T/C0的比較輸出腳為OC0(PB

CTC:比較匹配時清零計數(shù)器模式,。當(dāng)計數(shù)器TCNT0的數(shù)值等于比較寄存器OCR0時計數(shù)器TCNT0自動清零。OCR0定義了計數(shù)器的最大(TOP)值,這個模式使得用戶可以很容易地控制比較匹配輸出的頻率。T/C0的比較輸出腳為OC0(PB3),PB口的第三腳,在此模式下可以在OC0上輸出PWM控制外部設(shè)備。

例如:在OC0腳上輸出20HZ的方波信號,方波的周期時間為T=1/20HZ=0.05秒=50ms,半個周期為25ms,系統(tǒng)采用8MHZ晶振,1024分頻,時鐘計數(shù)頻率為8000000/1024=7812.5HZ,每個時鐘脈沖時間為1/7812.5=0.128ms, 定時25ms的計數(shù)值為25ms/0.128ms=195,將195賦值為T/C0的比較寄存器OCR0,啟動定時器后,TCNT0從0開始計數(shù),當(dāng)計數(shù)到195時,產(chǎn)生比較中斷,在OC0腳上輸出20HZ的占空比為50%的方波信號。

操作過程如下:

一、I/O管腳初始化:PB3(OC0)腳設(shè)為輸出,DDRB|=(1<

二、使能全局中斷:SREG=0X80;

三、T/C0比較中斷允許:TIMSK|=(1<

四、TCCR0配置:分頻系數(shù)為1024, TCCR0|=(1<

CTC模式設(shè)置, TCCR0|=(1<

比較匹配時OC0取反 TCCR0|=(1<

五、計數(shù)器付初值: TCNT0=0;

OCR0=195; //付初值后定時器開始工作

//函數(shù)功能:在PB3上輸出20HZ的方波,并在PD7上產(chǎn)生周期2秒的周期信號。(代碼來自輕松玩轉(zhuǎn)avr單片機(jī)c語言cd)

#include
char Counter = 0; // 計數(shù)變量清零

void port_init()
{
DDRB|=(1<PORTB&=(0<DDRD|=(1<PORTD&=(0<}

void timer0_init()
{
SREG = 0x80; //使能全局中斷
TIMSK= (1<< OCIE0); //T/C0比較匹配中斷允許
TCCR0=(1<// T/C0工作于CTC模式,1024分頻,比較匹配時,觸發(fā)OC0取反
TCNT0 = 0; //定時初值設(shè)置,
OCR0 = 195; //比較匹配寄存器初值
}

void main()
{
port_init();
timer0_init();
while(1);
}

#pragma interrupt_handler timer0_COMP:20
void timer0_COMP(void)
{
TCNT0 = 0; //定時初值設(shè)置,
OCR0 = 195; //比較匹配寄存器初值
if(++Counter >= 40) //定時時間到1S嗎?定時中斷溢出40次為1S
{
PORTD^=(1<Counter = 0; //1S計時變量清零
}
}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉