按键识别
有没有好点的按键识别程序可以借鉴一下。既不过多占用CPU时间,又能快速响应的。顶一下,希望有人分享成熟代码{:4_196:}
www.stcai.com/syx
神农鼎 发表于 2023-12-19 16:37
www.stcai.com/syx
实验箱例程里有?谢谢!我下载看看 神农鼎 发表于 2023-12-19 16:37
www.stcai.com/syx
可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定的模式,有点浪费CPU时间。想找个其他思路的程序借鉴一下。实验箱里的按键识别程序是矩阵键盘。和独立按键不太一样
zhudean11 发表于 2023-12-19 16:44
可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定 ...
一样的,都是需要CPU扫描的,你如果矩阵较小的话可以看看用中断也行 zhudean11 发表于 2023-12-19 16:44
可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定 ...
你可以看看安富莱有一个按键例程,通过定时器定时扫描,避免了软件延时消抖,用过几次还不错,支持按键按下 弹起 点击 双击 组合键 之类的事件.只不过那个是基于STM32单片机的例程,,弄懂原理了移植一下就可以了{:4_168:} 本帖最后由 乘风飞扬 于 2023-12-19 19:09 编辑
zhudean11 发表于 2023-12-19 16:34
顶一下,希望有人分享成熟代码附件例程供参考,定时每毫秒检测一次按键状态,有按键累加计数器,没有按键清除计数器,连续计数50次表明按键按下并保持50ms,设置状态标志。
if(!KEY1)
{
if(!Key1_Flag) //防止重复触发
{
Key1_cnt++;
if(Key1_cnt >= 50) //50ms防抖
{
Key1_Flag = 1; //设置按键状态,防止重复触发
Key1_Function = 1;
}
}
}
else
{
Key1_cnt = 0;
Key1_Flag = 0;
}
本帖最后由 gentleman 于 2023-12-19 22:27 编辑
我vga信号发生器v0.2 版本写过一个独立按键扫描
按键计数 键值判断
因为用的是定时器调度所以几乎感觉和其他任务同时进行的
PWM做 简易 VGA信号发生器 - PWM/144MHz时钟源的PWM/45路PWM+3路CCP/7组不同周期的PWM/DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
我又回来了,想了想,布丁橘长那个多功能按键也挺有意思的,你可以借鉴一下
页:
[1]
2