我写了一个在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);} |
|