在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > AVR單片機入門教程之三---中斷

            AVR單片機入門教程之三---中斷

            作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
            首先說一下中斷的優(yōu)點:中斷函數(shù)只在中斷觸發(fā)源觸發(fā)的時候才會執(zhí)行,其他時間不執(zhí)行. 如果不使用中斷而且如果要根據(jù)某個端口的變化而作相應(yīng)的函數(shù)操作,就必須不斷地查詢端口的信號,而中斷不用,只要端口一有變化,就會系統(tǒng)就會自動進入中斷函數(shù), 我覺得這就是中斷的目的,也是優(yōu)點.

            然后說一下中斷的使用,要使用AVR的外部中斷,要先進行中斷初始設(shè)置(觸發(fā)電平上升沿和下降沿的設(shè)定),然后開全局中斷,這樣在觸發(fā)中斷管腳的時候就會進入中斷處理函數(shù).無論導(dǎo)致引腳電平變化的原因是來自單片機內(nèi)部還是外部,只要引腳上的電平發(fā)生了變化都可以觸發(fā)該引腳上的電平變化中斷.

            本文引用地址:http://www.biyoush.com/article/201611/320343.htm

            AVR單片機,其硬件系統(tǒng)不支持自動實現(xiàn)中斷嵌套的處理。如果在系統(tǒng)設(shè)計中,必須使用中斷嵌套處理,則需要由用戶編寫相應(yīng)的程序,通過軟件設(shè)置來實現(xiàn)中斷嵌套的功能。

            如果在初始化中開了總中斷 那么AVR在進去中斷處理函數(shù)后會自動把總中斷給關(guān)了中斷出來后就會重新開中斷 所以如果不用在中斷里面嵌套另一個中斷 就不用在中斷服務(wù)程序里面開總中斷使能。。。

            AVR單片機的中斷優(yōu)先級只在同時觸發(fā)中斷時優(yōu)先級高的中斷先進行處理,而對于51單片機中低級別的中斷不能打斷高級別的中斷,在AVR單片機中低級別的中斷卻可以打斷高級別的中斷,這是很不一樣的,下面用一個例子來說明一下:

            //T0溢出中斷服務(wù)程序
            #pragma interrupt_handler timer0_ovf_isr:10
            void timer0_ovf_isr(void)
            {
            TCNT0 = 0xB4;
            SEI();
            dlygd(0,0);
            dlygd(0,0);
            }

            //T2溢出中斷服務(wù)程序
            #pragma interrupt_handler timer2_ovf_isr:5
            void timer2_ovf_isr(void)
            {
            TCNT2 = 0xA0;
            SEI();
            saomiao();
            }

            對于以上兩個時間溢出中斷函數(shù)我在中斷程序里面都用了SEI();由于開了總中斷,那么在中斷執(zhí)行過程中,只要有其他中斷觸發(fā),系統(tǒng)同樣會進入另外的中斷處理函數(shù).

            用JTAG調(diào)試了一下 發(fā)現(xiàn)只要TCNT0一溢出 就觸發(fā)TIMER0的中斷 在中斷的過程中只要TCNT2一溢出 就觸發(fā)了TIMER2的中斷 這樣子級別高的中斷打斷低的中斷是沒什么問題啊 但是在TCNT0再次溢出時 還是會觸發(fā)TIMER0的中斷 這就很奇怪了 難道中斷級別低的中斷可以中斷級別高的中斷嗎??? 這就對了 在AVR單片機中,低級別的中斷是可以打斷高級別的中斷的,只要總中斷開著.



            關(guān)鍵詞: AVR單片機入門教程中

            評論


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

            關(guān)閉