新闻中心

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 下一页

评论


相关推荐

技术专区

关闭