新聞中心

IAR 下 AVR 的外部中斷操作

作者: 時(shí)間:2016-12-03 來(lái)源:網(wǎng)絡(luò) 收藏
芯片 : ATMega16

晶振 : 7.3728 MHz

本文引用地址:http://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 由亮變滅,由滅變亮
}



關(guān)鍵詞: IARAVR外部中

評(píng)論


技術(shù)專區(qū)

關(guān)閉