本帖最后由 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();
- ……
- }
|