byyzfeng 发表于 2024-12-11 10:58:52

按键输入方法

<p>按键按下,有机械抖动, 要加延时处理,具体是加入20mS后再判断,状态有没有变化,如果没的变化,确认按键有效,否则无效</p>

bkeuqoaq 发表于 2024-12-11 11:17:29

原理是这样,但直接这么写,效率低下,一按键系统反应迟钝

wlhet 发表于 2024-12-11 11:43:56

你是使用中断还是循环扫描?

tubulvxing 发表于 2024-12-11 11:54:30

<p>昨天还在论坛上看到大佬发的按键代码,可以参考一下</p>

DebugLab 发表于 2024-12-11 12:35:04

不用延时函数,使用状态机,周期调用该函数即可(几十到几百Hz):
void Key_Scan(void)
{
        static bit Key_Flag;
        if(BUTTON==0)
        {
                if(Key_Flag==1)
                {
                        Key_Flag=0;
                        User_Function();
                }
        }
        else
                Key_Flag=1;
}

页: [1]
查看完整版本: 按键输入方法