|
|
2 лет назад | |
|---|---|---|
| .github | 2 лет назад | |
| doc | 3 лет назад | |
| examples | 4 лет назад | |
| figures | 3 лет назад | |
| inc | 3 лет назад | |
| src | 3 лет назад | |
| .gitignore | 3 лет назад | |
| ChangeLog.md | 3 лет назад | |
| LICENSE | 6 лет назад | |
| README.md | 2 лет назад | |
| SConscript | 6 лет назад |
Agile Button 是基于 RT-Thread 实现的 button 软件包,提供 button 操作的 API。
按键操作的状态变化为:未按下 ——> 按下 ——> 未按下。
为了消除干扰,默认的消抖时间为 15ms,可以通过 agile_btn_set_elimination_time API 更改消抖时间。
间隔在 500ms 内的连续操作,记为多次操作,更改对象的 repeat_cnt 属性,通过该属性可获取连续操作次数。
在按下期间会计算对象的持续按下时间,可通过对象的 hold_time 属性获取。
Agile Button 提供了 4 种事件:
BTN_PRESS_DOWN_EVENT
BTN_HOLD_EVENT
BTN_PRESS_UP_EVENT
BTN_CLICK_EVENT
可以通过 agile_btn_set_event_cb API 设置每个事件的触发回调。
从 未按下 ——> 按下 触发一次。
一直处于按下状态,默认每隔 1s 触发一次,可以通过 agile_btn_set_hold_cycle_time API 更改触发周期。
从 按下 ——> 未按下 触发一次。
一次完整的操作触发一次,即:未按下 ——> 按下 ——> 未按下。
注意 :BTN_PRESS_UP_EVENT 也会被触发。
| 名称 | 说明 |
|---|---|
| doc | 文档 |
| examples | 例子 |
| figures | 素材 |
| inc | 头文件 |
| src | 源代码 |
Agile Button package 遵循 LGPLv2.1 许可,详见 LICENSE 文件。
使用 Agile Button package 需要在 RT-Thread 的包管理器中选择它,具体路径如下:
RT-Thread online packages
peripheral libraries and drivers --->
[*] agile_button: A agile button package
然后让 RT-Thread 的包管理器自动更新,或者使用 pkgs --update 命令更新包到 BSP 中。
如果未使能 PKG_AGILE_BUTTON_USING_THREAD_AUTO_INIT:
agile_btn_env_init 初始化环境
创建一个线程,周期调用 agile_btn_process,建议周期时间不要太长
该操作也可在运行过程中执行
agile_btn_set_two_interval_time 更改两次按键按下间隔的超时时间 该操作可以修改多击操作的响应速度
agile_btn_set_event_cb 设置事件触发回调
agile_btn_start 启动运行
agile_btn_stop 运行过程中强制停止
使用示例在 examples 下。
Doxywizard 打开 Doxyfile 运行,生成的文件在 doxygen/output 下。Graphviz 路径。HTML 生成未使用 chm 格式的,如果使能需要更改 hhc.exe 路径。