微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > IAR 下 AVR 的外部中断操作

IAR 下 AVR 的外部中断操作

时间:12-03 来源:互联网 点击:
芯片 : ATMega16

晶振 : 7.3728 MHz

外部中断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 由亮变灭,由灭变亮
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top