搜索
bottom↓
12
返回列表 发新帖
楼主: MurphyZhao

回馈开源----史上最强按键驱动

  [复制链接]

出0入0汤圆

发表于 2019-9-26 10:29:44 | 显示全部楼层
谢谢分享     支持一下

出0入0汤圆

发表于 2019-9-26 15:29:16 | 显示全部楼层
谢谢楼主分享

出0入0汤圆

发表于 2019-9-26 15:50:57 | 显示全部楼层
支持支持   
头像被屏蔽

出0入0汤圆

发表于 2019-10-18 17:25:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2019-10-19 16:00:05 | 显示全部楼层
下载收藏

出0入0汤圆

发表于 2019-10-19 21:43:45 | 显示全部楼层
火钳刘明~

出0入0汤圆

发表于 2019-10-20 16:00:19 | 显示全部楼层
前排支持一下楼主的开源!

出0入0汤圆

发表于 2019-10-20 16:33:46 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2019-10-20 16:54:40 | 显示全部楼层
技术文章 要支持一下

出0入0汤圆

发表于 2019-10-20 17:50:50 | 显示全部楼层
感谢分享

出0入0汤圆

 楼主| 发表于 2019-10-30 19:02:02 | 显示全部楼层
ErnestChen 发表于 2019-10-18 17:25
用起来真心不错,功能强大。用的时候没注意,哪三行,可否分析一下?

就是下面的三行代码:

  1.     read_data = keydata^0xFFFF;
  2.     trg = read_data & (read_data ^ cont);
  3.     cont = read_data;
复制代码

出0入0汤圆

发表于 2019-10-30 22:32:23 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2019-10-31 08:12:44 | 显示全部楼层
牛人,支持

出0入0汤圆

 楼主| 发表于 2019-12-25 10:30:20 | 显示全部楼层
自从开源了 FlexibleButton 按键驱动,目前已经有非常多的人关注,并应用到项目中。



同时,也有很多小伙伴帮助我修复了一些问题,提出了更多项目上的实际需求,因此,这几天准备迭代一个版本,感谢大家的支持。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-12-26 14:09:59 | 显示全部楼层
谢谢分享,学习了!

出0入0汤圆

 楼主| 发表于 2019-12-26 18:08:31 | 显示全部楼层
v2.0.0 版本正式输出了,下载链接:https://github.com/murphyzhao/FlexibleButton/releases/tag/2.0.0

  • 实现无限连击功能
  • 简化示例程序,增加组合按键演示
  • 整理代码
  • 按键结构体增加 id 属性,用于唯一区分按键
  • 按键结构体增加 max_combos_click_solt 属性,用于处理连击


欢迎下载体验。

## 获取

### Git 方式

```SHELL
git clone https://github.com/murphyzhao/FlexibleButton.git
```

### RT-Thread menuconfig 方式

```
RT-Thread online packages  --->
    miscellaneous packages  --->
        
  • FlexibleButton: Small and flexible button driver  --->
            
  •    Enable flexible button demo
                  version (latest)  --->
    ```

    配置完成后,输入 `pkgs --update` 下载软件包。

    ## 快速体验

    FlexibleButton 库中提供了一个测试例程 [`./flexible_button_demo.c`](./flexible_button_demo.c),该例程基于 RT-Thread OS 进行测试,硬件平台选择了 *RT-Thread IoT Board Pandora v2.51* 开发板。当然你可以选择使用其他的 OS,或者使用裸机测试,只需要移除 OS 相关的特性即可。

    如果你使用自己的硬件平台,只需要将 FlexibleButton 库源码和例程加入你既有的工程下即可。
  • 出0入0汤圆

    发表于 2020-1-15 23:37:25 | 显示全部楼层
    支持!学习!谢谢分享!

    出0入0汤圆

    发表于 2020-1-28 08:48:08 | 显示全部楼层
    看起来不错呀,学习了。谢谢

    出0入0汤圆

    发表于 2020-1-28 20:53:46 | 显示全部楼层
    看起来不错呀,学习了。

    出0入0汤圆

    发表于 2020-1-28 21:57:44 | 显示全部楼层

    看起来不错呀,学习了。

    出0入0汤圆

    发表于 2020-1-28 22:10:55 | 显示全部楼层
    感觉分享,我也试过用面向对象方式封装按键状态机

    出0入0汤圆

    发表于 2020-1-28 23:45:23 来自手机 | 显示全部楼层
    好的想法,谢谢

    出0入0汤圆

    发表于 2020-2-15 17:08:16 | 显示全部楼层
    本帖最后由 chinaboy25 于 2020-2-15 20:06 编辑

    很早以前的农民讲习所也是这样做的,不过你写的还是好些,当时我嫌弃一个字节保存一个按键电平,太浪费了;另外为啥无按键事件不用0;很别扭,

    出0入0汤圆

     楼主| 发表于 2020-2-17 13:59:33 | 显示全部楼层
    chinaboy25 发表于 2020-2-15 17:08
    很早以前的农民讲习所也是这样做的,不过你写的还是好些,当时我嫌弃一个字节保存一个按键电平,太浪费了; ...

    原本我也是打算将 NONE 防到 enum 的第一个,后面发现这样不利于索引和遍历,所有就放后面了。也有听多软件包是这么用的。

    出0入0汤圆

    发表于 2020-2-17 14:07:17 | 显示全部楼层
    谢谢共享~~~~~~

    出0入0汤圆

     楼主| 发表于 2020-2-17 14:10:25 | 显示全部楼层

    感谢支持,一起学习交流

    出0入0汤圆

     楼主| 发表于 2020-2-17 14:12:45 | 显示全部楼层
    chenfzg 发表于 2020-1-28 23:45
    好的想法,谢谢

    感谢支持,有好的想法建议,也可以交流

    出0入0汤圆

     楼主| 发表于 2020-2-17 14:17:18 | 显示全部楼层
    【更新日志】
    昨天更新支持了腾讯的 TencentOS-Tiny 的官方板卡 EVB_MX+,新增基于 TencentOS 的例程,欢迎体验 https://github.com/murphyzhao/Fl ... o_tos_evb_mx_plus.c

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    出0入10汤圆

    发表于 2020-2-17 20:04:26 | 显示全部楼层
    感谢楼主,正在51上移植,单按键OK,组合按键还不行,正在调试。 对按键库做了点修改: 因为按键的时间参数是一样的,所以从结构里提取了出来,以节省RAM. 可以共用另外一个结构或用宏代替。

    出0入0汤圆

    发表于 2020-2-17 22:28:23 | 显示全部楼层
    不敢再回头看我第一个项目代码

    出0入4汤圆

    发表于 2020-2-18 00:12:58 来自手机 | 显示全部楼层
    感谢分享

    出0入0汤圆

    发表于 2020-2-18 10:21:05 | 显示全部楼层
    本帖最后由 chinaboy25 于 2020-2-18 11:45 编辑
    MurphyZhao 发表于 2020-2-17 13:59
    原本我也是打算将 NONE 防到 enum 的第一个,后面发现这样不利于索引和遍历,所有就放后面了。也有听多软 ...

    不懂,
    能举个例吗?
    不是if(keyread())吗?

    出0入0汤圆

    发表于 2020-2-18 10:24:12 | 显示全部楼层
    谢谢共享~~~~~~

    出0入0汤圆

    发表于 2020-2-18 10:29:54 | 显示全部楼层
    感谢分享,收藏

    出0入0汤圆

    发表于 2020-2-18 12:17:57 | 显示全部楼层
    支持一下楼主      

    出0入0汤圆

    发表于 2020-2-18 12:36:21 | 显示全部楼层
    楼主你好,我现在也做了个针对于MCU裸机的开源代码,能否授权我将你的这个按键部分合到我的代码中,作为第三方代码使用。这个是我代码的链接:https://gitee.com/notrynohigh/BabyOS

    出0入0汤圆

    发表于 2020-2-18 17:08:21 | 显示全部楼层
    史上最强按键驱动  学习下.

    出0入0汤圆

     楼主| 发表于 2020-2-28 17:36:14 | 显示全部楼层
    chinaboy25 发表于 2020-2-18 10:21
    不懂,
    能举个例吗?
    不是if(keyread())吗?

    比如例程里面的这个遍历:

    1.     for (i = 0; i < USER_BUTTON_MAX; i ++)
    2.     {
    3.         user_button[i].id = i;
    4.         user_button[i].usr_button_read = common_btn_read;
    5.         user_button[i].cb = common_btn_evt_cb;
    6.         user_button[i].pressed_logic_level = 0;
    7.         user_button[i].short_press_start_tick = FLEX_MS_TO_SCAN_CNT(1500);
    8.         user_button[i].long_press_start_tick = FLEX_MS_TO_SCAN_CNT(3000);
    9.         user_button[i].long_hold_start_tick = FLEX_MS_TO_SCAN_CNT(4500);

    10.         if (i == USER_BUTTON_3)
    11.         {
    12.             user_button[USER_BUTTON_3].pressed_logic_level = 1;
    13.         }

    14.         flex_button_register(&user_button[i]);
    15.     }
    复制代码

    出0入0汤圆

     楼主| 发表于 2020-2-28 17:36:31 | 显示全部楼层
    32MCU 发表于 2020-2-18 17:08
    史上最强按键驱动  学习下.

    感谢支持

    出0入0汤圆

     楼主| 发表于 2020-2-28 17:37:05 | 显示全部楼层
    怂包BB 发表于 2020-2-18 12:36
    楼主你好,我现在也做了个针对于MCU裸机的开源代码,能否授权我将你的这个按键部分合到我的代码中,作为第 ...

    可以在开源协议的范畴内自由使用

    出0入0汤圆

    发表于 2020-2-28 17:37:28 | 显示全部楼层
    学习收藏

    出0入4汤圆

    发表于 2020-3-12 15:49:26 | 显示全部楼层
    支持下 定义波

    出200入0汤圆

    发表于 2020-3-29 22:37:03 来自手机 | 显示全部楼层
    感谢分享,收藏一下

    出0入53汤圆

    发表于 2020-3-29 23:13:54 来自手机 | 显示全部楼层
    lnskngdc 发表于 2019-9-1 09:20
    记得坛子里有个状态机的按键扫描也很经典,我一直在用

    发一下连接

    出0入4汤圆

    发表于 2020-3-30 00:06:23 来自手机 | 显示全部楼层
    zhcj66 发表于 2020-3-29 23:13
    发一下连接

    我估计他说的是马潮老师那个按键状态机。

    出0入0汤圆

     楼主| 发表于 2020-4-26 15:44:43 | 显示全部楼层
    atommann 发表于 2020-3-30 00:06
    我估计他说的是马潮老师那个按键状态机。

    这个基本上也是一个状态机了

    出0入0汤圆

    发表于 2023-4-16 06:44:31 | 显示全部楼层
    谢谢分享。

    出0入0汤圆

    发表于 2023-12-27 13:07:07 | 显示全部楼层
    好东西好东西好东西好东西好东西
    回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

    GMT+8, 2024-4-26 21:46

    © Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

    快速回复 返回顶部 返回列表