为区分出0.5秒和2秒的键值返回<br />总是分不出时间的长短<br />不知道有那出现问题,<br />各位高手请教<br />或给个参考程序也可以.<br />小弟初学PIC C语言程序,<br />谢谢大家能来帮我入门.....<br />感激<br /><br />UCHAR Key_Scan() <br />{<br />UCHAR i=0; <br />UCHAR aKey_Data=0 , aKey_Data1=0;<br />UCHAR aTime_Cnt;<br /><br />Delay(40); // 50msec Delay<br />aKey_Data = (PORTC & 0x0F);<br /><br />for(i=0; i<220; i++) {<br /> <br /> aTime_Cnt++; <br /> Delay(3);// 5msec <br /> if((PORTC&0x0F)) aKey_Data1 = (PORTC&0x0F);<br /> <br /> if((aKey_Data1 != 0x01)&&(aKey_Data1 != 0x02)&&(aKey_Data1 != 0x04)&&(aKey_Data1 != 0x08)) {<br /> aKey_Data = aKey_Data1; <br /> }<br /> <br /> if((PORTC&0x0F)==0x00) break;<br />} <br /><br />if(aTime_Cnt < 5){<br /> return(0);<br /> }else if( (aTime_Cnt>5)&&(aTime_Cnt < 160)){<br /> gKey_Data = aKey_Data;<br /> return(1);<br />}else if( aTime_Cnt > 190){<br /> gKey_Data = (aKey_Data|0x10);<br /> return(1);<br />}else return(0);<br /><br />} |
|