Comments (9)
低功耗按键的思路应该如何呢?是不是需要设置中断模式
from flexiblebutton.
这个按键库主要是实现按键扫描和按键事件产生的底层代码,定时扫描的工作放到了应用层去完成,因此应用层有完全的设计灵活度。因此,低功耗处理不在这个按键代码中做处理,而是交给应用层。
可行的处理方式,可以如您所说的,增加中断模式,但并不是将该模式放到这个按键库的实现里,而是放到应用层。
我的想法是应用层可以在进入低功耗前,挂起按键扫描;按键唤醒或者其他机制唤醒系统后,再启动按键扫描。目前我也是这么处理的,使用方式略 low。:sweat_smile:
from flexiblebutton.
明白了,谢谢。你的库我刚在用,感觉不错。
from flexiblebutton.
感谢支持(●'◡'●)
from flexiblebutton.
能否支持组合按键?
from flexiblebutton.
能否支持组合按键?
@rockjg0917 这个库仅做底层的按键扫描处理,如果需要支持组合按键,请再封一层,根据按键库返回的事件分装需要的组合按键,希望可以帮到您,谢谢。
from flexiblebutton.
@zhaojuntao 明白,谢谢!
from flexiblebutton.
有个问题,我有4个按键,使用1个按键,不会出错,要是大于1个,那么只会最大标号一个有效,不知道这是不是一个Bug,硬件应该没有问题,有问题的话,1个按键也不行吧。
for (i = 0; i < 4; i ++)
{
user_button[i].id = i;
user_button[i].usr_button_read = common_btn_read;
user_button[i].cb = common_btn0_evt_cb;
user_button[i].pressed_logic_level = 0;
user_button[i].short_press_start_tick = FLEX_MS_TO_SCAN_CNT(1500);
user_button[i].long_press_start_tick = FLEX_MS_TO_SCAN_CNT(3000);
user_button[i].long_hold_start_tick = FLEX_MS_TO_SCAN_CNT(4500);
flex_button_register(&user_button[i]);
}
串口打印信息:
id: [1 - USER_BUTTON_1] event: [0 - FLEX_BTN_PRESS_DOWN] repeat: 0
id: [1 - USER_BUTTON_1] event: [4 - FLEX_BTN_PRESS_SHORT_START] repeat: 0
id: [1 - USER_BUTTON_1] event: [6 - FLEX_BTN_PRESS_LONG_START] repeat: 0
id: [1 - USER_BUTTON_1] event: [8 - FLEX_BTN_PRESS_LONG_HOLD] repeat: 0
后续这个按键就没有反应了。
from flexiblebutton.
有个问题,我有4个按键,使用1个按键,不会出错,要是大于1个,那么只会最大标号一个有效,不知道这是不是一个Bug,硬件应该没有问题,有问题的话,1个按键也不行吧。
for (i = 0; i < 4; i ++)
{
user_button[i].id = i;
user_button[i].usr_button_read = common_btn_read;
user_button[i].cb = common_btn0_evt_cb;
user_button[i].pressed_logic_level = 0;
user_button[i].short_press_start_tick = FLEX_MS_TO_SCAN_CNT(1500);
user_button[i].long_press_start_tick = FLEX_MS_TO_SCAN_CNT(3000);
user_button[i].long_hold_start_tick = FLEX_MS_TO_SCAN_CNT(4500);
flex_button_register(&user_button[i]);
}
串口打印信息:
id: [1 - USER_BUTTON_1] event: [0 - FLEX_BTN_PRESS_DOWN] repeat: 0
id: [1 - USER_BUTTON_1] event: [4 - FLEX_BTN_PRESS_SHORT_START] repeat: 0
id: [1 - USER_BUTTON_1] event: [6 - FLEX_BTN_PRESS_LONG_START] repeat: 0
id: [1 - USER_BUTTON_1] event: [8 - FLEX_BTN_PRESS_LONG_HOLD] repeat: 0
后续这个按键就没有反应了。
建议找个 IoT Board 板子,跑跑提供的示例程序。代码总共没几行,参数也没有多少,相信你可以搞定。
from flexiblebutton.
Related Issues (20)
- 能否支持3连击 按键? HOT 6
- 触摸按键 HOT 12
- 中断方式检测按键 HOT 2
- 关于按键ID HOT 4
- 有计划加入滑式按键吗? HOT 1
- 可不可自定义某个按键是否需要:长按,双击等功能? HOT 1
- 注册按键数量问题 HOT 1
- 按下事件<FLEX_BTN_PRESS_DOWN>的防抖 HOT 4
- 有考虑过 flex_button_register 和 button_scan 线程安全 HOT 3
- 长按事件的组合按键问题 HOT 4
- 同时按住四个按键出现卡顿并无法正常回调?
- 请问一下按键事件回调函数和用户注册时的ID是相反的是什么原因,我有4个按键,注册时是按0、1、2、3分配的ID,但是在事件回调中是相反的顺序,比如说我注册的时候ID是0,但是在事件回调函数里面打印的按键ID是3 HOT 2
- 非常不合理的设计:短按事件和长按事件相关联 HOT 2
- flexible_button.h中的值是否需要与flex_button_scan()轮询调用的时间间隔保持一致? HOT 1
- flexible_button.c中的全局变量g_logic_level和g_btn_status_reg为何不用static修饰?
- 这里超过16个按键这个左移不就溢出了吗
- 按键处理数量限制 HOT 1
- 建议把状态用枚举值来代替,方便理解
- 关于按键连续触发事件 HOT 4
- 有没有在没有os的51单片机使用这个函数库的例子 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flexiblebutton.