MEGA8的INT1中断程序除了问题,帮助看看[已解决]

2019-03-24 20:53发布

仿真的时候开始就直接进入中断程序中,这是怎么回事啊???怎么改正啊。一次中断程序后也能再次进行中断触发的操作。
#include<iom8v.h>#define uchar unsigned char#define uint unsigned int//============延时=================void delay_ms(uint k) {   uint i,j;   for(i=0;i<k;i++)   {      for(j=0;j<570;j++)  ;    } }    uint m;   uchar Distab[]=   {0x03,0x06,0x0C,0x09   };  void main(void) {    DDRC=0xff;         //PC作为输出端口   DDRD=0xdf;         //PD3作为输入   PORTD=0xff;        //PD初始化输出11111111   MCUCR=0x08;        //INT1下降沿触发   GICR=0x80;         //使能INT1中断   SREG=0x80;         //使能总中断   while(1)           //无线循环{PORTC=0xff;} }#pragma interrupt_handler int1_isr:3   //INT1中断子函数void int1_isr(void)  {     for(m=0;m<=3;m++)                { PORTC=Distab[m];  delay_ms(500);    }}
[ 本帖最后由 wawling 于 2012-5-22 18:58 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
tiankai001
2019-03-25 21:43
2楼说得对。
另外中断程序一般是要尽量短,延时最好不要放在中断里

一周热门 更多>