void TimerTx1_ISR(void)
{
M8C_DisableGInt;
cap2=TimerTx_wReadCompareValue();
cap=cap1-cap2;
cap1=cap2;
M8C_EnableGInt;
}
Period=65535 ,cap计算两次上升沿的差值,
do{}while(cap<4000||cap>5500);
for(j=0;j<3;j++)
{
for(i=0;i<8;i++)
{
cap=0;
do{}while(cap==0);
do{}while(cap>20&&cap<35);
if(cap>300&&cap<900)//0信号
{
tep=LearningData[j];
if(i<7){tep=(tep>>1);}
LearningData[j]=tep;
}
else if(cap>900)//1信号
{
tep=LearningData[j];
tep=(tep|0x80);
if(i<7){tep=(tep>>1);}
LearningData[j]=tep;
}
}
所有的do{}while()语句都可以执行下去,可是就是检测不到if语句的范围,高人指点下为什么啊! |