Murphy

Results 22 comments of Murphy

刚查看了下,这个问题在 v2.0.3 版本中确实存在,但在 v3.0.1 已经被阿里无声无息地修过了。 希望阿里可以正视该 Git 仓库。

:joy: 确实是个问题,您有好的修复想法可以 PR 过来,感谢反馈

:thumbsup: 非常感谢,后面我来整理下 :blush: 。

原理是什么样的?无级调光还是多段式调光?有没有这样的按键参考? 理论上,你可以把“滑动按键”的键值读取函数封装后,注册按键,每次按键扫描都会读取到一个键值(这个键值可能是不是 0 和 1,可能是线性值),然后根据这个值定义不同的事件或者直接上报键值。 需要改动的部分是 `flex_button_t` 结构体的 `uint8_t pressed_logic_level : 1;`,因为这里是用一个**位**来存储键值的逻辑电平,在滑动按键上,应该是一个级别的值,或者返回。

@cos12a 很好的建议。可以实现自定义某个按键是否需要长按、双击功能(通过 MASK 位匹配方式),通过宏定义可以进行模块化功能选择。目前我短时间内不会加入这个功能,如有需要可尝试自己修改设计,也非常欢迎您提交 PR 进来。 Thanks.

以 595 的方式来说吧 你的 595 芯片接口上,应该已经定义好了每个接口挂哪个按键检测。那么,你封装的 595 read 函数,应该是,一个循环里都去到所有的按键状态,然后你就可以把这些按键状态中的某一个对应到 FB 中的一个按键 read 函数上。 当然,还有一种方式: 直接修改 `static void flex_button_read(void)` 函数 ``` for(target = btn_head, i = 0; (target != NULL) &&...

> https://blog.csdn.net/qq_37214666/article/details/119026318 > 之前遇到过这个问题,写了一点点东西。有需要可以看一下,写的可能不太好。 感谢分享,写的非常好。

@LONGSHEN1998 您理解的没有问题,这里做了一个限制,可以修改这块代码来扩展按键数量,通常情况下不需要那么多按键。

这个按键库主要是实现按键扫描和按键事件产生的底层代码,定时扫描的工作放到了应用层去完成,因此应用层有完全的设计灵活度。因此,低功耗处理不在这个按键代码中做处理,而是交给应用层。 可行的处理方式,可以如您所说的,增加中断模式,但并不是将该模式放到这个按键库的实现里,而是放到应用层。 我的想法是应用层可以在进入低功耗前,挂起按键扫描;按键唤醒或者其他机制唤醒系统后,再启动按键扫描。目前我也是这么处理的,使用方式略 low。:sweat_smile:

感谢支持(●'◡'●)