一个让人百思不得其解的按键检测程序

[复制链接]
3018|1
 楼主| jinling14 发表于 2007-4-9 15:48 | 显示全部楼层 |阅读模式
我写了一个在5s时间里按键次数检测程序,我在线调试的时候还是可以的,但是一旦烧到单片机中就不行了,好象程序就死在那了,如果让RA2处于低电平5s左右时,这时还是可以返回键值1,怎么会这样,请高手指点一下,下面是我的程序:<br /><br />Time5s_Over是5s时间的标志;<br /><br /><br />#define&nbsp;AlarmTime&nbsp;&nbsp;&nbsp;&nbsp;RA2<br /><br />unsigned&nbsp;char&nbsp;KeyScan(void)<br />{Keytime1=0;<br />&nbsp;&nbsp;&nbsp;while(Time5s_Over==0){&nbsp;<br />LOOPK1:if(AlarmTime==1){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(AlarmTime==1){<br />&nbsp;&nbsp;&nbsp;&nbsp;if(Time5s_Over==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{Time5s_Over=0;goto&nbsp;RET;}asm(&quot;CLTWDT&quot;);}}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(AlarmTime==0){<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;if(AlarmTime==0){Keytime1++;<br />LOOPK0:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(AlarmTime==0){asm(&quot;CLRWDT&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Time5s_Over==1){Time5s_Over=0;goto&nbsp;RET;}}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f(AlarmTime==1){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DELAY(10);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//延时2ms<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(AlarmTime==1)&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;goto&nbsp;LOOPK0;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;goto&nbsp;LOOPK1;}}}<br />RET:<br />&nbsp;&nbsp;&nbsp;&nbsp;Time5s_Over=0;return(Keytime1);}&nbsp;
zgl7903 发表于 2007-4-9 16:29 | 显示全部楼层

RA2模拟口 ?有没有修改控制寄存器,把模拟口配置为数字口

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

111

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部