zhudean11 发表于 2023-12-19 16:32:34

按键识别

有没有好点的按键识别程序可以借鉴一下。既不过多占用CPU时间,又能快速响应的。

zhudean11 发表于 2023-12-19 16:34:54

顶一下,希望有人分享成熟代码{:4_196:}

神农鼎 发表于 2023-12-19 16:37:22



www.stcai.com/syx

zhudean11 发表于 2023-12-19 16:38:48

神农鼎 发表于 2023-12-19 16:37
www.stcai.com/syx

实验箱例程里有?谢谢!我下载看看

zhudean11 发表于 2023-12-19 16:44:57

神农鼎 发表于 2023-12-19 16:37
www.stcai.com/syx

可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定的模式,有点浪费CPU时间。想找个其他思路的程序借鉴一下。实验箱里的按键识别程序是矩阵键盘。和独立按键不太一样

嵌入式之路 发表于 2023-12-19 17:35:57

zhudean11 发表于 2023-12-19 16:44
可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定 ...

一样的,都是需要CPU扫描的,你如果矩阵较小的话可以看看用中断也行

_奶咖君_ 发表于 2023-12-19 18:57:54

zhudean11 发表于 2023-12-19 16:44
可能我没说清楚,我是想看看独立按键的识别程序。网上也找了好多例程,绝大多数多少判定-延时消抖-再判定 ...

你可以看看安富莱有一个按键例程,通过定时器定时扫描,避免了软件延时消抖,用过几次还不错,支持按键按下 弹起 点击 双击 组合键 之类的事件.只不过那个是基于STM32单片机的例程,,弄懂原理了移植一下就可以了{:4_168:}

乘风飞扬 发表于 2023-12-19 19:01:14

本帖最后由 乘风飞扬 于 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:22:26

本帖最后由 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)

嵌入式之路 发表于 2023-12-19 23:33:18

我又回来了,想了想,布丁橘长那个多功能按键也挺有意思的,你可以借鉴一下
页: [1] 2
查看完整版本: 按键识别