if(P1_0 == 0)
{
Delay(10);//问题就在这里,你让CPU在这里空转?
if(P1_0 == 0)
{
//...add your code here.
}
}
进入第1个if判断语句后,就进入了Delay(10);再看Delay函数,完全让CPU执行(;空语句),所以在做大的产品或者代码时,这个是非常耗费单片机内部资源的。有什么办法吗?呵呵,那是肯定的。
解决方法大致有如下2种:
1.将延时函数放在中断中,在中断里查询延时的标志位。/*不仅仅用于键盘识别,亦可以用于其他的延时代码.
2.直接在中断中查询按键的标志位.
这两种解决方法我没看懂,
举个例解释一下,用定时器中断就能不浪费单片机内部资源吗?噢噢~~用中断的时候单片机可以做其他事情?百度是可以得到例子,但是要能解释清楚。谢谢。
还有~
什么叫查询按键的标志位?
什么叫查询延时的标志位?
慕勒3428872
郎朗坤