IAR 下 AVR 的外部中斷操作
晶振 : 7.3728 MHz
本文引用地址:http://m.butianyuan.cn/article/201612/325118.htm外部中斷0 ,下降沿觸發(fā)。
關(guān)于硬件:要想穩(wěn)定的使用外部中斷,最好要在管腳處上拉一個(gè)電阻(一般上拉10K,當(dāng)然上拉還是下拉也要看你的觸發(fā)條件),如果是按鍵的話應(yīng)該再并一個(gè)電容(一般為104),這樣效果會(huì)比較好,有效的防止抖動(dòng)。
代碼:
#include
#include
#include
voidint0_init()
{
_CLI(); //disable all interrupts//關(guān)總中斷
MCUCR = 0x02;//下降沿觸發(fā) 外部中斷0
GICR = 0x40; //使能 外部中斷0
GIFR_INTF0 = 1;//清除 外部中斷0 標(biāo)志位
_SEI(); //re-enable interrupts//開(kāi)總中斷
}
voidmain(void)
{
DDRB_Bit0 = 1; //定義一個(gè)led
int0_init();
while(1);
}
#pragma vector = INT0_vect //外部中斷0入口地址
__interrupt voidex_int0(void)
{
PORTB_Bit0 = ~PORTB_Bit0; //每次進(jìn)入中斷讓一個(gè)led 由亮變滅,由滅變亮
}
評(píng)論