IAR 下 AVR 的外部中断操作
晶振 : 7.3728 MHz
本文引用地址:https://www.eepw.com.cn/article/201612/325118.htm外部中断0 ,下降沿触发。
关于硬件:要想稳定的使用外部中断,最好要在管脚处上拉一个电阻(一般上拉10K,当然上拉还是下拉也要看你的触发条件),如果是按键的话应该再并一个电容(一般为104),这样效果会比较好,有效的防止抖动。
代码:
#include
#include
#include
voidint0_init()
{
_CLI(); //disable all interrupts//关总中断
MCUCR = 0x02;//下降沿触发 外部中断0
GICR = 0x40; //使能 外部中断0
GIFR_INTF0 = 1;//清除 外部中断0 标志位
_SEI(); //re-enable interrupts//开总中断
}
voidmain(void)
{
DDRB_Bit0 = 1; //定义一个led
int0_init();
while(1);
}
#pragma vector = INT0_vect //外部中断0入口地址
__interrupt voidex_int0(void)
{
PORTB_Bit0 = ~PORTB_Bit0; //每次进入中断让一个led 由亮变灭,由灭变亮
}
评论