新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機中斷

        AVR單片機中斷

        作者: 時間:2013-01-09 來源:網絡 收藏

        系統在正常運行主程序時,如果突然有一個重要的任務要馬上處理,那么系統就要保存現在的工作,然后再去處理這個任務,執行這個重要任務完畢以后再返回原來的主程序繼續運行,這就是中斷。

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

        使用ICC快速建立中斷服務程序 程序文件

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

        1.jpg

        將生成的程序進行修改,DDRA = 0x01;PORTD = 0x0C; ,添加MAIN函數,如下

        //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對應口上拉電阻有效

        DDRD = 0x00; //必須設置INT0,INT1對應口為輸入

        }


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 马鞍山市| 镇雄县| 龙南县| 定边县| 昆明市| 新津县| 梅河口市| 无锡市| 龙州县| 鸡西市| 儋州市| 额济纳旗| 丰镇市| 阜南县| 宜黄县| 高青县| 台前县| 资兴市| 那坡县| 潮安县| 浏阳市| 昌黎县| 昌都县| 夏河县| 阿鲁科尔沁旗| 霸州市| 句容市| 阳原县| 红原县| 霞浦县| 固安县| 大竹县| 牡丹江市| 贵定县| 浮梁县| 永兴县| 都兰县| 阳泉市| 平果县| 巴中市| 柯坪县|