|
发表于 2020-12-29 14:20:36
|
显示全部楼层
本帖最后由 isoimg2130 于 2020-12-29 14:24 编辑
楼上的程序比起以下这种方式肯定强了不止一点:
按键函数(void)
{
如果按键等于0
{
延时10毫秒;
如果按键还是等于0
{
触发按键;
等待按键松手;
}
}
}
说下这种按键函数的问题。
如果按键按下,其他函数都在等那10毫秒延时,比如:有些不是用定时器扫描数码管的程序数码管就灭了。或者显示乱码,或者闪一下。这要是做个产品试问谁要?
不光数码管,再比如有个示波器,按了下按键,结果10毫秒延时,那波形就断了10毫秒,这示波器谁要?等等东西同理就不一一举例了。。
再说那个等待按键松手。我看别人写的都是while(按键==1)这样,问题在于一旦按键卡住或者坏了,从此程序就卡在等待按键等于1那了,相当于死机了。
上面的按键程序只是一种,还有其他多种方式,比如:扫描io状态,以返回值形式返回按键是双击,长按,组合状态等等,还有矩阵方式就不一一举例了。
总而言之,像网上这种按键程序是千万不能用的,自己弄来玩玩要求不高是可以的。搞成产品的话就是坑自己。坑客户了。
|
|