void IR_IN() interrupt 0
{
uchar i,j,k;
uchar count;
EA=0;
I1: for(k=0;k<4;k++)
{
if(IR1302==0) break;
if(k==3){EA=1;return;}
}
delayms(25);
if(IR1302==1)
goto I1;
while(!IR1302);
for(i=0;i<4;i++)
{
for(j=0;j<8;j++)
{
while(IR1302);
while(!IR1302);
while(IR1302)
{
delayms(1);
count++;
if(count>=30)
{
EA=1;
return; //这个地方的return为啥 退不出去直接就是从函数第一行开始运行了
}
}
table[i]>>=1;
if(count>=8){table[i]=table[i]|0x80;}
count=0;
}
}
if(table[2]!=~table[3]) {EA=1;return;}
EA=1;
} //这个地方也退不出去 也是从函数的第一行运行了
这是咋回事呀