新聞中心

AVR單片機(jī)中斷

作者: 時(shí)間:2013-01-09 來(lái)源:網(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)生異步中斷請(qǐng)求,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有一個(gè)與之對(duì)應(yīng)的應(yīng)用程序void int0_isr(void),2為中斷向量,值越小,優(yōu)先級(jí)越高,INT0的優(yōu)先級(jí)僅次于復(fù)位。

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

通用中斷控制寄存器- GICR 使能或禁用外部中斷請(qǐng)求

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


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉