ATmega8中断进去不了?

2019-07-19 21:47发布

大家好i,我今天使用ATmega8做外部中断0的测试程序,可是怎么也进不了中断。我使用的是Win avr编写编译,使用avrstdio 4.0烧录的。希望那位大哥能够指点一下,很急很急的,谢谢。我的代码如下:

外部中断0 的代码:
#include <avr/io.h>
#include <avrinterrupt.h>
#include <avrsignal.h>

int i=1;

void port_init(void)
{
 //B0是led灯
 DDRB |=0x01;//B0 设置为输出
PORTB &=0xFE;//关闭led灯
//D2是外部中断IO口
DDRD&=0xFB;//D2设置为输入
PORTD|=0x04;//D2设置为高电平
}

void exti_init(void)
{
   MCUCR=MCUCR|0x03;//外部中断0设置为上升沿触发中断
   GICR=GICR|0x40;//使能外部中断0
}

void main(void)
{
     port_init();//io初始化
    exti_init();//外部中断初始化
    sei();开启全局中断
    while(1)
   {
      if(i==-1)
     {PORTB|=0x01;.//灯亮}
     else if(i==1)
     {PORTB&=0xFE;//灯灭}

    }
}

//中断服务程序
SIGNAL(SIG_INTERRUPT0)

    i=i*(-1);


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。