恩,书上说抖动时间大约6ms,消抖10ms应该可以了。怎么才算复杂系统呢?
如果我每隔10ms扫描一次键盘,也可以用这个间隔做消抖,感觉上好像“没消抖”
bit fg_shake; =0
bit fg_scan; =0
//中断中,每10ms就fg_scan=1;
void main(void)
{
-----;
if(fg_scan==1)
{
fg_scan = 0;
keyscan();
}
}
void keyscan(void)
{
if(key_on ==1) //有键按下
{
if(fg_shake==1) //说明过了10ms
{
//按键处理
}
else fg_shake=1;
}
else fg_shake =0;
} |