本帖最后由 sdu_yqc 于 2011-5-4 17:46 编辑
将1Hz的方波连到INT0,程序代码如下。按理说,将PC0接发光二极管,发光二极管应该按1Hz的频率闪烁的,但是 发光管却一直亮着,难道是中断错了?
#pragma interrupt_handler int0_isr:2 //外部中断0
void int0_isr(void) //external interupt on INT0
{
DDRC|=BIT(0);
PORTC|=BIT(0);
}
void init_int0(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
PORTD|= BIT(2); //使INT0对应口上拉电阻有效
DDRD &=~BIT(2); //必须设置INT0对应口为输入
MCUCR = 0x02; //INT0 的下降沿产生异步中断请求
GICR = 0x40; //INT0使能
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
}
void main(void)
{ ……
init_int0();
……
}
|