新聞中心

        AVR單片機(jī)中斷

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

        #pragma interrupt_handler int0_isr:2

        void int0_isr(void)

        {

        //external interupt on INT0

        i++; //在中斷里進(jìn)行操作

        }

        #pragma interrupt_handler int1_isr:3

        void int1_isr(void)

        {

        //external interupt on INT1

        PORTA = 0x01; //在中斷里進(jìn)行操作

        }

        //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 的下降沿產(chǎn)生異步中斷請求,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) //死循環(huán)等待中斷

        ;

        }

        相關(guān)解釋

        #pragma interrupt_handler int0_isr:2

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

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

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

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


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 岱山县| 南通市| 阿城市| 遵义县| 吴旗县| 苍梧县| 阿鲁科尔沁旗| 临沭县| 西宁市| 宿州市| 沙坪坝区| 青龙| 广平县| 翁牛特旗| 电白县| 津市市| 桐柏县| 海门市| 阜城县| 米脂县| 巴中市| 诸城市| 苍南县| 黔东| 东方市| 桓台县| 商都县| 武平县| 稷山县| 阜康市| 沈丘县| 定南县| 湟中县| 平潭县| 迁安市| 南陵县| 隆子县| 尚义县| 济南市| 宁远县| 陕西省|