新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ATmega16L-----外部中斷0,1中斷嵌套

        ATmega16L-----外部中斷0,1中斷嵌套

        作者: 時間:2012-08-22 來源:網(wǎng)絡(luò) 收藏
        /***************************************  取自周興華《AVR單片機(jī)C語言高級程序設(shè)計》  進(jìn)入INT1中斷的時候,再開啟全局中斷,  這時候INT0中斷觸發(fā),可以形成***************************************/  #includeiom16v.h>  #includemacros.h>  #define uchar unsigned char  #define uint unsigned int  uint shu;  /***************************************  delay  ****************************************/  void delay_ms(uint k)  {  uint i,j;  for(i=0;ik;i++)  for(j=0;j570;j++);  }  /****************************************  main  ****************************************/  void main(void)  {  DDRB=0xff;  PORTB=0XFF;  PORTD=0XFF;  DDRD=0XF3; //將PD2,PD3設(shè)置為輸入 即INT0,INT1  MCUCR=0X0A; //INT1,INT0 設(shè)置為下降沿觸發(fā)  GICR=0XC0; //使能INT1,INT0 中斷  SREG=0X80; //使能總中斷  while(1)  {  PORTB=0X00;  delay_ms(100);  PORTB=0XFF;  delay_ms(100);  }  }  /*****************************************  INT0 ISR  *****************************************/  #pragma interrupt_handler int0_isr:2  void int0_isr(void)  {  for(shu=0;shu5;shu++)  {  PORTB|= BIT(1);  delay_ms(60);  PORTB=~BIT(1);  delay_ms(60);  }  }  /***************************************  INT1 ISR  ***************************************/  #pragma interrupt_handler int1_isr:3  void int1_isr(void)  {  SREG=0X80; //使能全局中斷  for(shu=0;shu10;shu++)  {  PORTD|=BIT(7);  delay_ms(100);  PORTD=~BIT(7);  delay_ms(100);  }  } 


        關(guān)鍵詞: ATmega16L ATmega16L 中斷嵌套

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 华宁县| 古交市| 三江| 迁西县| 康保县| 临夏县| 合水县| 高密市| 报价| 营山县| 家居| 万全县| 赤壁市| 东安县| 钟山县| 连山| 台北县| 吉木乃县| 合水县| 禄劝| 贵州省| 内江市| 绥江县| 潮州市| 潜山县| 海城市| 靖边县| 金堂县| 城口县| 名山县| 长沙市| 涟水县| 五峰| 莱西市| 辽阳县| 察隅县| 开化县| 筠连县| 阿拉善左旗| 同德县| 满洲里市|