标题: 这个单片机程序为什么在没有外部中断信号的情况下自动进入中断记一次数? [打印本页]

作者: 19235654    时间: 2018-8-22 17:45
标题: 这个单片机程序为什么在没有外部中断信号的情况下自动进入中断记一次数?
void interrupt()//中断服务函数
{  
        pushaf;
//        if (intrq.PA0)
//        {
               
                byte num;
                word n;
            num=0;
            n=0;
                while(1)
                {
                        if(mode_in==1)
                        {
                        while(!mode_in==0)
                                {;}
                        num++;
                        n=0;
                        }
                        else
                        {
                                if(mode_in==0)
                                {
                                        n++;
                                }
                        }

                        if(n==30)
                        {  
                                num++;           
                                n=0;
                                break;
                        }        
                }
        mode=num;
                out_num();
             engint;
            intrq.PA0=0;
                flash();
            mode=0;
        
        
//        }
        intrq.PA0=0;
        popaf;

//}
}为什么在没有外部中断信号的情况下自动进入中断记一次数


作者: ai__si    时间: 2018-8-23 15:43
中断里用while(1),你这个中断服务函数能退出么?
作者: wulin    时间: 2018-8-24 06:32
你这个外部中断服务函数能通过编译吗?
void interrupt()//中断服务函数
通常写法:
void xxxx() interrupt 0
{
   ...
}
作者: yang阳    时间: 2018-8-24 09:40
你这个程序首先弊端太多,格式也不正确,如果在中断函数里要处理这么长的程序,个人建议先把中断关闭,然后处理完成后再打开中断
作者: 19235654    时间: 2018-9-12 10:51
yang阳 发表于 2018-8-24 09:40
你这个程序首先弊端太多,格式也不正确,如果在中断函数里要处理这么长的程序,个人建议先把中断关闭,然后 ...

这个并不是51的程序,是min-c的程序,中断进入之后就自动关闭中断,直到你将中断标志位清零




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1