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 由亮变灭,由灭变亮
}
IARAVR外部中 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)