| 
我写了一个在5s时间里按键次数检测程序,我在线调试的时候还是可以的,但是一旦烧到单片机中就不行了,好象程序就死在那了,如果让RA2处于低电平5s左右时,这时还是可以返回键值1,怎么会这样,请高手指点一下,下面是我的程序:<br /><br />Time5s_Over是5s时间的标志;<br /><br /><br />#define AlarmTime    RA2<br /><br />unsigned char KeyScan(void)<br />{Keytime1=0;<br />   while(Time5s_Over==0){ <br />LOOPK1:if(AlarmTime==1){<br />      while(AlarmTime==1){<br />    if(Time5s_Over==1)<br />    {Time5s_Over=0;goto RET;}asm("CLTWDT");}}<br />    if(AlarmTime==0){<br />    DELAY(10);<br />    if(AlarmTime==0){Keytime1++;<br />LOOPK0:       while(AlarmTime==0){asm("CLRWDT");<br />        if(Time5s_Over==1){Time5s_Over=0;goto RET;}}<br />        f(AlarmTime==1){<br />        DELAY(10);         //延时2ms<br />        if(AlarmTime==1)  continue;<br />        else goto LOOPK0;}<br />       else goto LOOPK1;}}}<br />RET:<br />    Time5s_Over=0;return(Keytime1);}  |   
     
  
 |