新闻中心

EEPW首页>嵌入式系统>设计应用> IAR 下 AVR 的外部中断操作

IAR 下 AVR 的外部中断操作

作者: 时间:2016-12-03 来源:网络 收藏
芯片 : ATMega16

晶振 : 7.3728 MHz

本文引用地址://m.amcfsurvey.com/article/201612/325118.htm

外部中断0 ,下降沿触发。

关于硬件:要想稳定的使用外部中断,最好要在管脚处上拉一个电阻(一般上拉10K,当然上拉还是下拉也要看你的触发条件),如果是按键的话应该再并一个电容(一般为104),这样效果会比较好,有效的防止抖动

代码:

#include
#include
#include

voidint0_init()
{
_CLI(); //disable allinterrupts//关总中断

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 由亮变灭,由灭变亮
}



关键词:IARAVR外部中

评论


技术专区

关闭