<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR 外部中斷INT0的簡(jiǎn)單操作

          AVR 外部中斷INT0的簡(jiǎn)單操作

          作者: 時(shí)間:2016-11-22 來(lái)源:網(wǎng)絡(luò) 收藏
          #include <avr/io.h>
          #include
          #include interrupt.h> //調(diào)用WINAVR的中斷庫(kù)函數(shù)。

          volatile unsigned char count = 0; //定義循環(huán)變量,大家要注意我們這里要加上volatile.
          //因?yàn)閏ount函數(shù)在中斷函數(shù)中會(huì)變化。
          ISR(INT0_vect) //中斷函數(shù),注意我們寫(xiě)中斷函數(shù)用的到ISR(中斷名)
          {
          _delay_ms(10); //按鍵延時(shí)
          if((PIND&(1 << PD0)) == 0) //重復(fù)檢測(cè)防抖動(dòng),只有按鍵按下時(shí)先執(zhí)行if里面的語(yǔ)句
          {
          count++;
          PORTB = 0xff;
          if(count > 7)
          {
          count = 0;
          }
          }
          while(!(PIND&(1 << PD0))); //等持釋放按鍵
          _delay_ms(10); //這里也是防抖動(dòng)
          }

          void Interrupt_Init(void) //中斷初始化函數(shù)
          {
          EICRA |= _BV(1); //INT0為下降沿產(chǎn)生異部中斷請(qǐng)求
          EIMSK |= _BV(INT0); //始能外部中斷0
          sei(); //置位全局中斷位
          }
          int main(void)
          {
          DDRB = 0xff; //PB口為輸出模式
          PORTB = 0xff; //初始化為1

          DDRD = 0x00; //PD口為輸入模式
          PORTD = 0xff; //有上拉
          Interrupt_Init();
          while(1)
          {
          PORTB |= _BV(count);
          _delay_ms(500);
          PORTB &= ~_BV(count);
          _delay_ms(500);
          }
          }


          關(guān)鍵詞: AVR外部中斷INT

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();