unnormal 发表于 2019-9-26 10:29:44

谢谢分享   支持一下

kxm2008 发表于 2019-9-26 15:29:16

谢谢楼主分享

小黑人嘿嘿 发表于 2019-9-26 15:50:57

支持支持   

ErnestChen 发表于 2019-10-18 17:25:33

xuwuhan 发表于 2019-10-19 16:00:05

下载收藏

zhongjp85 发表于 2019-10-19 21:43:45

火钳刘明~

jiangkehong 发表于 2019-10-20 16:00:19

前排支持一下楼主的开源!

eliterxzgxu 发表于 2019-10-20 16:33:46

感谢楼主分享

tarchen 发表于 2019-10-20 16:54:40

技术文章 要支持一下

joesonzzy 发表于 2019-10-20 17:50:50

感谢分享

MurphyZhao 发表于 2019-10-30 19:02:02

ErnestChen 发表于 2019-10-18 17:25
用起来真心不错,功能强大。用的时候没注意,哪三行,可否分析一下?

就是下面的三行代码:

    read_data = keydata^0xFFFF;
    trg = read_data & (read_data ^ cont);
    cont = read_data;

高斯白噪声 发表于 2019-10-30 22:32:23

感谢分享

chenwuji 发表于 2019-10-31 08:12:44

牛人,支持

MurphyZhao 发表于 2019-12-25 10:30:20

自从开源了 FlexibleButton 按键驱动,目前已经有非常多的人关注,并应用到项目中。



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

ak2368 发表于 2019-12-26 14:09:59

谢谢分享,学习了!

MurphyZhao 发表于 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 库源码和例程加入你既有的工程下即可。

changshs 发表于 2020-1-15 23:37:25

支持!学习!谢谢分享!

Azuresky 发表于 2020-1-28 08:48:08

看起来不错呀,学习了。谢谢

wjwjwjwj98 发表于 2020-1-28 20:53:46

看起来不错呀,学习了。

a105 发表于 2020-1-28 21:57:44


看起来不错呀,学习了。

Fake-BBA 发表于 2020-1-28 22:10:55

感觉分享,我也试过用面向对象方式封装按键状态机

chenfzg 发表于 2020-1-28 23:45:23

好的想法,谢谢

chinaboy25 发表于 2020-2-15 17:08:16

本帖最后由 chinaboy25 于 2020-2-15 20:06 编辑

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

MurphyZhao 发表于 2020-2-17 13:59:33

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

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

jacktau 发表于 2020-2-17 14:07:17

谢谢共享~~~~~~

MurphyZhao 发表于 2020-2-17 14:10:25

jacktau 发表于 2020-2-17 14:07
谢谢共享~~~~~~

感谢支持,一起学习交流{:lol:}

MurphyZhao 发表于 2020-2-17 14:12:45

chenfzg 发表于 2020-1-28 23:45
好的想法,谢谢

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

MurphyZhao 发表于 2020-2-17 14:17:18

【更新日志】
昨天更新支持了腾讯的 TencentOS-Tiny 的官方板卡 EVB_MX+,新增基于 TencentOS 的例程,欢迎体验 https://github.com/murphyzhao/FlexibleButton/blob/master/examples/demo_tos_evb_mx_plus.c。

mmiker 发表于 2020-2-17 20:04:26

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

czjdxs 发表于 2020-2-17 22:28:23

不敢再回头看我第一个项目代码{:lol:}

fdcnuaa 发表于 2020-2-18 00:12:58

感谢分享

chinaboy25 发表于 2020-2-18 10:21:05

本帖最后由 chinaboy25 于 2020-2-18 11:45 编辑

MurphyZhao 发表于 2020-2-17 13:59
原本我也是打算将 NONE 防到 enum 的第一个,后面发现这样不利于索引和遍历,所有就放后面了。也有听多软 ...
不懂,
能举个例吗?
不是if(keyread())吗?

wjwjwjwj98 发表于 2020-2-18 10:24:12

谢谢共享~~~~~~

xuwuhan 发表于 2020-2-18 10:29:54

感谢分享,收藏

xuxueliang 发表于 2020-2-18 12:17:57

支持一下楼主      

怂包BB 发表于 2020-2-18 12:36:21

楼主你好,我现在也做了个针对于MCU裸机的开源代码,能否授权我将你的这个按键部分合到我的代码中,作为第三方代码使用。这个是我代码的链接:https://gitee.com/notrynohigh/BabyOS

32MCU 发表于 2020-2-18 17:08:21

史上最强按键驱动学习下.

MurphyZhao 发表于 2020-2-28 17:36:14

chinaboy25 发表于 2020-2-18 10:21
不懂,
能举个例吗?
不是if(keyread())吗?

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

    for (i = 0; i < USER_BUTTON_MAX; i ++)
    {
      user_button.id = i;
      user_button.usr_button_read = common_btn_read;
      user_button.cb = common_btn_evt_cb;
      user_button.pressed_logic_level = 0;
      user_button.short_press_start_tick = FLEX_MS_TO_SCAN_CNT(1500);
      user_button.long_press_start_tick = FLEX_MS_TO_SCAN_CNT(3000);
      user_button.long_hold_start_tick = FLEX_MS_TO_SCAN_CNT(4500);

      if (i == USER_BUTTON_3)
      {
            user_button.pressed_logic_level = 1;
      }

      flex_button_register(&user_button);
    }

MurphyZhao 发表于 2020-2-28 17:36:31

32MCU 发表于 2020-2-18 17:08
史上最强按键驱动学习下.

感谢支持

MurphyZhao 发表于 2020-2-28 17:37:05

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

可以在开源协议的范畴内自由使用{:smile:}

异客 发表于 2020-2-28 17:37:28

学习收藏

kyq_linux 发表于 2020-3-12 15:49:26

支持下 定义波

wahaha 发表于 2020-3-29 22:37:03

感谢分享,收藏一下

zhcj66 发表于 2020-3-29 23:13:54

lnskngdc 发表于 2019-9-1 09:20
记得坛子里有个状态机的按键扫描也很经典,我一直在用

发一下连接

atommann 发表于 2020-3-30 00:06:23

zhcj66 发表于 2020-3-29 23:13
发一下连接

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

MurphyZhao 发表于 2020-4-26 15:44:43

atommann 发表于 2020-3-30 00:06
我估计他说的是马潮老师那个按键状态机。

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

bbb168 发表于 2023-4-16 06:44:31

谢谢分享。

o0pingu0o1 发表于 2023-12-27 13:07:07

好东西好东西好东西好东西好东西
页: 1 [2]
查看完整版本: 回馈开源----史上最强按键驱动