我常用while(!KEY);来做松手检测,对于有些程序可以,但有些考虑到按下按键但不放手,程序就停在这条语句了,那么,进入中断函数后的一些变量改变了但希望在主函数中处理这些变量相应的操作,(如写液晶),那程序就执行不到相关的操作,因为停止在按键检测语句,这样会造成时间段错乱的情况,请教高手指点其它的按键检测方法!
以下是一段例程
void MODE_key()
{
if(MODE == 0)
{
delay(5);
if(MODE == 0)
{
buzzer();
mode ++;
if(mode == 5)
mode = 0;
Write_1621(7,Mode7[mode]);//MODE显示函数
Write_1621(8,Mode8[mode]);
while( ! MODE);
}
}
} |