新聞中心

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

        AVR單片機中斷

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

        #pragma interrupt_handler int0_isr:2

        void int0_isr(void)

        {

        //external interupt on INT0

        i++; //在中斷里進行操作

        }

        #pragma interrupt_handler int1_isr:3

        void int1_isr(void)

        {

        //external interupt on INT1

        PORTA = 0x01; //在中斷里進行操作

        }

        //call this routine to initialize all peripherals

        void init_devices(void)

        {

        //stop errant interrupts until set up

        CLI(); //disable all interrupts

        port_init();

        MCUCR = 0x08; //INT1 的下降沿產生異步中斷請求,INT0上升延

        GICR = 0xC0; //INT0和INT1使能

        TIMSK = 0x00; //timer interrupt sources

        SEI(); //re-enable interrupts

        //all peripherals are now initialized

        }

        void main(void)

        {

        init_devices();

        while(1) //死循環等待中斷

        ;

        }

        相關解釋

        #pragma interrupt_handler int0_isr:2

        中斷的約定表示方法:int0_isr有一個與之對應的應用程序void int0_isr(void),2為中斷向量,值越小,優先級越高,INT0的優先級僅次于復位。

        MCU 控制寄存器- MCUCR MCU 控制寄存器包含中斷觸發控制位與通用MCU 功能

        通用中斷控制寄存器- GICR 使能或禁用外部中斷請求

        使用過程中:為了降低干擾,中斷引腳請加上一個4.7K的上拉電阻,還可以根據實際需要,加上電容濾波,防抖動。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南宫市| 铁岭县| 高雄市| 枣阳市| 仁怀市| 航空| 石台县| 南通市| 原阳县| 柯坪县| 徐水县| 本溪市| 黄山市| 股票| 滦平县| 鄂伦春自治旗| 邛崃市| 丰原市| 读书| 筠连县| 万州区| 奉化市| 客服| 宁南县| 海盐县| 扬州市| 巴马| 古蔺县| 衡水市| 开封县| 江北区| 阳曲县| 涪陵区| 南涧| 兴和县| 鄢陵县| 开封市| 东莞市| 夹江县| 汉寿县| 泌阳县|