色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > AVR單片機中的中斷嵌套

          AVR單片機中的中斷嵌套

          作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          AVR響應(yīng)中斷后,由硬件自動清零全局中斷標(biāo)志位,此時任何中斷都無法響應(yīng)。直到中斷響應(yīng)程序執(zhí)行完畢后,全局中斷自動打開。因此,若不作特別處理,AVR單片機是無法實現(xiàn)中斷嵌套的。
          但,如果在中斷服務(wù)程序中開放全局中斷,一旦有中斷(包括中斷級別較低的,或者是自己本身)申請,AVR將立即響應(yīng)中斷,打斷當(dāng)前正在執(zhí)行的任何程序(包括正在執(zhí)行中斷服務(wù)程序),進入新的中斷服務(wù)程序,從而實現(xiàn)中斷嵌套。此時如有多個中斷申請同時存在,MCU響應(yīng)高優(yōu)先權(quán)的中斷。
          可見,AVR單片機中,若軟件合理設(shè)計,即可實現(xiàn)中斷嵌套。
          和MCS51特別不同的是,AVR中斷嵌套不僅可處理優(yōu)先級更高的中斷,也可以處理同優(yōu)先級甚至優(yōu)先級較低的中斷。這能滿足一些特殊的設(shè)計,但是也容易引起混亂。在軟件設(shè)計過程中,這一點設(shè)計者需特別注意。
          具體實驗:

          interrupt [iv_INT1] void USB_Link_Int(void)

          本文引用地址:http://cafeforensic.com/article/201611/320956.htm

          {

          //顯示提示信息,提示進入INT1中斷處理程序

          DispScreen(scr_info_of_int1,true,null);

          //延遲3秒,使得屏幕提示可以看清

          //注意:延遲過程中產(chǎn)生iv_TIMER0_COMP中斷,該中斷的優(yōu)先級低于iv_INT1

          Timer0_Start(0,3); //注:此函數(shù)中使用sei()開放中斷

          while (Timer0_IsRun());

          Timer0_Stop();

          //允許INT3(ENTER)鍵按下產(chǎn)生中斷

          EIMSK &= 0xf7; //禁止INT3產(chǎn)生中斷

          EICRA |= 0x80;

          EICRA &= 0xbf; //INT3中斷方式:下降沿產(chǎn)生異步中斷

          EIFR |= 0x08;//清INT3中斷標(biāo)志

          EIMSK |= 0x08;//允許INT3產(chǎn)生中斷

          //禁止INT1,防止重入,專等INT3

          EIMSK &= ~( 1 << INT1 );//禁止INT1產(chǎn)生中斷

          //等待INT3中斷

          //注意:iv_INT3中斷的優(yōu)先級低于iv_INT1

          while(true);

          }

          //按ENTER鍵后產(chǎn)生INT3中斷

          interrupt [iv_INT3] void EnterKey_Int(void)

          {

          //顯示提示信息,提示進入INT3中斷處理程序

          DispScreen(scr_info_of_int3,true,null);

          //延遲3秒,使得屏幕提示可以看清

          //注意:延遲過程中產(chǎn)生iv_TIMER0_COMP中斷,該中斷的優(yōu)先級低于iv_INT3

          Timer0_Start(0,3); //注:此函數(shù)中使用sei()開放中斷

          while (Timer0_IsRun());

          Timer0_Stop();

          //啟動看門狗,等待復(fù)位

          watch_dog_reset_cpu();

          }

          實驗結(jié)果:iv_TIMER0_COMP中斷、iv_INT3中斷如期發(fā)生。

          由此可見,AVR單片機中,進入中斷處理程序適時開放全局中斷,不僅可以使用中斷嵌套,而且高級別中斷中可響應(yīng)任何級別(包括更低級別的)的中斷。




          關(guān)鍵詞: AVR單片機中斷嵌

          評論


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

          關(guān)閉