打印

单片机中断函数中的return不能退出函数!

[复制链接]
3719|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
472666GAQ|  楼主 | 2009-10-15 19:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 472666GAQ 于 2009-10-15 19:21 编辑

/*-------------------------------------------
   外部中断函数
-------------------------------------------*/
void IR_IN() interrupt 0  
{
uchar j,k,i,N=0;
EA=0;
    for(k=0;k<20;k++)
{
  if(IR1302==0) break;               
  
}
delayms(50);
if(IR1302!=0)
    return;
while(!IR1302);               
for(i=0;i<4;i++)
{
  for(j=0;j<8;j++)
  {   
       while(IR1302);
   while(!IR1302);
   while(IR1302)  
   {
    delayms(1);
    N++;
    if(N>=30)
    {
     EA=1;
     return;
    }
   }
   table>>=1;
   if(N>=8){table=table|0x80;}
   N=0;
  }
}
if(table[2]!=~table[3]) {EA=1;return;}
    EA=1;
}
这个中断函数是tc9012的解码中断函数   下降沿有效 但是return不能正常的退出函数
后来我用goto代替了return 编译了一下接着有用return代替goto编译了一下  程序居然好了  然后把电脑关了再打开编译器吧程序重新编译了   然后程序就不好使了只能结一次码return退不出去了

相关帖子

沙发
472666GAQ|  楼主 | 2009-10-16 07:25 | 只看该作者
大家帮帮忙呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

285

帖子

2

粉丝