新聞中心

        AVR單片機(jī)中斷

        作者: 時(shí)間:2013-01-09 來源:網(wǎng)絡(luò) 收藏

        系統(tǒng)在正常運(yùn)行主程序時(shí),如果突然有一個(gè)重要的任務(wù)要馬上處理,那么系統(tǒng)就要保存現(xiàn)在的工作,然后再去處理這個(gè)任務(wù),執(zhí)行這個(gè)重要任務(wù)完畢以后再返回原來的主程序繼續(xù)運(yùn)行,這就是中斷。

        主程序一旦進(jìn)入中斷服務(wù)程序,那么芯片將自動(dòng)的關(guān)閉,在這個(gè)期間不再執(zhí)行其它的中斷請求,直到中斷程序結(jié)束以后芯片才自動(dòng)的重新開放。(注意,在這個(gè)期間某些中斷請求可能會被丟棄,某些請求會留下中斷請求標(biāo)致,一旦當(dāng)前的中斷執(zhí)行完畢,這個(gè)有中斷標(biāo)致的請求就有可能馬上得到響應(yīng),如INT0的下降沿觸發(fā)就會留下中斷請求標(biāo)致,而低電平觸發(fā)就不會流下中斷請求標(biāo)致)。如果你想在執(zhí)行中斷服務(wù)程序時(shí)響應(yīng)另外一個(gè)更重要的中斷,那么就要在中斷服務(wù)程序中加入一條打開的語句。

        使用ICC快速建立中斷服務(wù)程序 程序文件

        使用ICC Application Builder進(jìn)行如下圖所示的設(shè)置。 可以設(shè)置是否使用中斷,上升延,下降延,低電平,任意的邏輯電平變化。

        1.jpg

        將生成的程序進(jìn)行修改,DDRA = 0x01;PORTD = 0x0C; ,添加MAIN函數(shù),如下

        //ICC- application builder : 2006-12-8 17:04:44

        // Target : M16

        // Crystal: 7.3728Mhz

        #include

        #include

        unsigned int i=0;

        void port_init(void)

        {

        PORTA = 0x00;

        DDRA = 0x01;

        PORTB = 0x00;

        DDRB = 0x00;

        PORTC = 0x00; //m103 output only

        DDRC = 0x00;

        PORTD = 0x0C; //使INT0,INT1對應(yīng)口上拉電阻有效

        DDRD = 0x00; //必須設(shè)置INT0,INT1對應(yīng)口為輸入

        }


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 辉南县| 鄂托克前旗| 临猗县| 栾城县| 东阳市| 循化| 县级市| 甘谷县| 九台市| 吐鲁番市| 正镶白旗| 九龙坡区| 扎囊县| 卓尼县| 凌海市| 丰镇市| 通河县| 土默特右旗| 宜都市| 体育| 重庆市| 建宁县| 高淳县| 水城县| 新建县| 望都县| 巴中市| 扎赉特旗| 马龙县| 肃南| 教育| 城口县| 大城县| 桑植县| 海原县| 东乌珠穆沁旗| 嘉黎县| 松江区| 荆州市| 阳江市| 修文县|