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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]最近打算自己做個(gè)藍(lán)牙接收機(jī),接在四軸上,于是研究下怎么輸出4路PWM。計(jì)劃是用定時(shí)器中斷,然后在中斷的時(shí)候計(jì)算占空比,然后對(duì)指定的PIN腳做高低電平的切換。折騰了半天才大致上了解了這方面的用法,下面的代碼在1

最近打算自己做個(gè)藍(lán)牙接收機(jī),接在四軸上,于是研究下怎么輸出4路PWM。

計(jì)劃是用定時(shí)器中斷,然后在中斷的時(shí)候計(jì)算占空比,然后對(duì)指定的PIN腳做高低電平的切換。

折騰了半天才大致上了解了這方面的用法,下面的代碼在16M的ATMEGA8芯片上實(shí)現(xiàn)了1秒中斷一次。

void setup() {

pinMode(13, OUTPUT);

//禁止中斷

cli();

//TCNT1在這里是累加寄存器,一次時(shí)鐘增加一次

//TCNT1 = 0;

// TCCR1控制寄存器

TCCR1A = 0;

TCCR1B = 0;

// OCR1A是累加上限寄存器,調(diào)整這個(gè)值就可以控制頻率了

// 這里的15625是這樣計(jì)算:16M / 1024 = 15625

OCR1A = 15625;

// 設(shè)置1024分頻

// 這里_BV是個(gè)宏,就是 1 << n 的作用,各種設(shè)置bit的寫(xiě)法好分裂的感覺(jué)。

TCCR1B |= (_BV(CS12) | _BV(CS10));

// WGM12控制的CTC模式,就是自己會(huì)把TCNT1給清0了,否則要手工清0

TCCR1B |= 1 << WGM12;

// 設(shè)置比較中斷

bitSet(TIMSK, OCIE1A);

//開(kāi)啟中斷

sei();

}

int flag = 0;

void loop() {

// put your main code here, to run repeatedly:

}

ISR(TIMER1_COMPA_vect) {

if (flag == 0)

{

flag = 1;

digitalWrite(13, HIGH);

}

else

{

flag = 0;

digitalWrite(13, LOW);

}

}


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