AB153x API----captouch驱动程序
总览
本节介绍captouch驱动程序API,包括术语和首字母缩写词,支持的功能,软件体系结构,有关如何使用此驱动程序的详细信息,枚举,结构和功能。
术语和首字母缩写词
条款 |
细节 |
---|---|
通用输入输出 |
有关通用输入输出的介绍,请参考HAL中的GPIO模块。 |
Captouch |
电容式触摸控制器用于人机界面。当人的手指触摸传感部分(通常是系统硬件的一部分)时,会形成电容,其中一块板是导电层,另一块板是人的手指。 |
支持的功能
该模块提供了通用设计来获取外部触摸事件。captouch通过自动校准用法的详细说明提供了两种使用方法,如下所示的正常用法。
- 正常 使用。 在这种用法中,每当按下或释放打击垫时都会触发一个中断。可以为该中断注册回调函数。每当按下或释放打击垫时,都会调用回调函数。hal_captouch_get_event()可在回调函数中使用,以获取键事件和键位置编号。
- tunning usange。 在这种用法中,用户可以通过hal_captouch_tune_control()来调整粗略上限。
如何使用此驱动程序
-
使用 了 正常。
要在正常模式下使用catpouch驱动程序,请参考GPIO数据表,确定应选择将GPIO复用到captouch引脚的GPIO。然后调用hal_captouch_init()手动设置通道位图,注册回调函数,默认粗略上限和阈值。调用hal_captouch_init()之后,驱动程序即可工作。如果按下或释放了键盘上的某个键,则键盘将触发中断以调用回调函数。用户应使用hal_captouch_get_event()在回调函数中获取键事件和键位置编号。为确保可靠的键扫描,请勿重载回调函数。让回调尽快返回。
- 步骤1。调用hal_captouch_init()初始化captouch模块。
- 第2步。如果不再使用captouch模块,则调用hal_captouch_deinit()取消初始化。
- 样例代码:
hal_captouch_config_t config;
hal_captouch_tune_data_t tune_data;
uint32_t i;
config.callback.callbck = user_captouch_callback; // Register callback
config.callback.userdata = NULL; // User's callback parameter pointer
config.channel_bit_map = 0xff; // Sets the channel0~7 enable
for(i=0;i<8;i++) {
config.high_thr[i] = 210; // Sets the high threshold value
config.low_thr[i] = 100; // Sets the low threshold value
config.coarse_cap[i] = 2; // Sets the coarse cap value
}
hal_captouch_init(&config);
...
hal_captouch_deinit(); // De-initialize the captouch module if it is no longer in use.
// Callback function. This function should be registered with #hal_captouch_init().
void user_captouch_callback (void *user_data)
{
// Get the key press or release event.
hal_captouch_event_t key_event;
uint32_t key_symbol;
hal_captouch_status_t ret;
while(1) {
ret = hal_captouch_get_event(&key_event);
if (ret == HAL_CAPTOUCH_STATUS_NO_EVENT) {
break;
}
}
}
-
使用 该 tunning 使用。
然后调整用法是按通道查找适当的粗略上限值。
- 步骤1。调用hal_captouch_init()初始化captouch模块。第2步。调用hal_captouch_tune_control()来找到适当的粗略上限值。
hal_captouch_config_t config;
hal_captouch_tune_data_t tune_data;
uint32_t i;
config.callback.callbck = user_captouch_callback; // Register callback
config.callback.userdata = NULL; // User's callback parameter pointer
config.channel_bit_map = 0xff; // Sets the channel0~7 enable
for(i=0;i<8;i++) {
config.high_thr[i] = 210; // Sets the high threshold value
config.low_thr[i] = 100; // Sets the low threshold value
config.coarse_cap[i] = 2; // Sets the coarse cap value
}
hal_captouch_init(&config);
for(i=0;i<8;i++) {
// The tune_data can be stored in memory, and filled by #hal_captouch_init().
hal_captouch_tune_control(i,HAL_CAPTOUCH_TUNE_SW_AUTO,&tune_data); // If tuning the 8 channels.
}
...
hal_captouch_deinit(); // De-initialize the captouch module if it is no longer in use.
功能文件
功能 | |
---|---|
hal_captouch_status_t |
hal_captouch_init(无效) |
此功能初始化captouch模块。如果需要captouch,请调用此功能。 更多... |
|
hal_captouch_status_t |
hal_captouch_deinit(无效) |
此功能可取消初始化captouch模块。如果不再使用Captouch,请调用此功能。 更多... |
|
hal_captouch_status_t |
hal_captouch_channel_enable(hal_captouch_channel_t通道) |
此功能启用通道。它将启用对通道中断和通道唤醒中断的检测。此API和hal_captouch_channel_disable()是相互依赖的。如有必要,必须在hal_captouch_init()之后调用它。 更多... |
|
hal_captouch_status_t |
hal_captouch_channel_disable(hal_captouch_channel_t通道) |
此功能禁用通道。它将禁用检测,通道中断和通道唤醒中断。此API和hal_captouch_channel_enable()是独立的,如有必要,必须在hal_captouch_init()之后调用。 更多... |
|
hal_captouch_status_t |
hal_captouch_get_event(hal_captouch_event_t * event) |
此函数获取关键事件数据。 更多... |
|
hal_captouch_status_t |
hal_captouch_set_threshold(hal_captouch_channel_t通道,S16 high_thr,S16 low_thr) |
此功能按通道更改高阈值和低阈值。 更多... |
|
hal_captouch_status_t |
hal_captouch_set_fine_cap(hal_captouch_channel_t通道,S16精细) |
此功能更改细上限值。此API仅可以在手动模式下使用。 更多... |
|
hal_captouch_status_t |
hal_captouch_set_coarse_cap(hal_captouch_channel_t通道,uint32_t 粗体) |
此功能更改粗毛细度上限值。 更多... |
|
hal_captouch_status_t |
hal_captouch_tune_control(hal_captouch_channel_t通道,hal_captouch_tune_type_t tune_type,hal_captouch_tune_data_t * data) |
此功能按通道调整校准值。 更多... |
|
hal_captouch_status_t |
hal_captouch_set_avg(U16 mavg_val,U16 avg_val) |
此功能更改粗毛细度上限值。 更多... |
|
hal_captouch_status_t |
hal_captouch_lowpower_control(hal_captouch_lowpower_type_t lowpower_type) |
此功能控制captouch何时进入正常或低功耗模式。可以在hal_captouch_init()之后使用。 更多... |
|
hal_captouch_channel_disable()
hal_captouch_status_t hal_captouch_channel_disable |
( |
hal_captouch_channel_t |
渠道 |
) |
---|
此功能禁用通道。它将禁用检测,通道中断和通道唤醒中断。此API和hal_captouch_channel_enable()是独立的,如有必要,必须在hal_captouch_init()之后调用。
参量
[在] |
渠道 |
是频道号。有关更多详细信息,请参考hal_captouch_channel_t。 |
---|
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
也可以看看
hal_captouch_channel_enable()
hal_captouch_channel_enable()
hal_captouch_status_t hal_captouch_channel_enable |
( |
hal_captouch_channel_t |
渠道 |
) |
---|
此功能启用通道。它将启用对通道中断和通道唤醒中断的检测。此API和hal_captouch_channel_disable()是相互依赖的。如有必要,必须在hal_captouch_init()之后调用它。
参量
[在] |
渠道 |
是频道号。有关更多详细信息,请参考hal_captouch_channel_t。 |
---|
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
也可以看看
hal_captouch_channel_disable()
◆ hal_captouch_deinit()
hal_captouch_status_t hal_captouch_deinit |
( |
虚空 |
) |
---|
此功能可取消初始化captouch模块。如果不再使用Captouch,请调用此功能。
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
也可以看看
hal_captouch_init()
◆ hal_captouch_get_event()
hal_captouch_status_t hal_captouch_get_event |
( |
hal_captouch_event_t * |
事件 |
) |
---|
此函数获取关键事件数据。
参量
[出] |
事件 |
是指向关键事件数据的指针。有关更多详细信息,请参考hal_captouch_event_t。 |
---|
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
◆ hal_captouch_init()
hal_captouch_status_t hal_captouch_init |
( |
虚空 |
) |
---|
此功能初始化captouch模块。如果需要captouch,请调用此功能。
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
也可以看看
hal_captouch_deinit()
◆ hal_captouch_lowpower_control()
hal_captouch_status_t hal_captouch_lowpower_control |
( |
hal_captouch_lowpower_type_t |
lowpower_type |
) |
---|
此功能控制captouch何时进入正常或低功耗模式。可以在hal_captouch_init()之后使用。
参量
[在] |
lowpower_type |
是类型值。有关更多详细信息,请参考hal_captouch_lowpower_type_t。 |
---|
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
◆ hal_captouch_set_avg()
hal_captouch_status_t hal_captouch_set_avg |
( |
U16 |
mavg_val, |
---|---|---|---|
U16 |
avg_val |
||
) |
此功能更改粗毛细度上限值。
参量
[在] |
mavg_val |
是触控移动平均时间。 |
---|---|---|
[在] |
avg_val |
是平均时间的触摸控制ADC。 |
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
◆ hal_captouch_set_coarse_cap()
hal_captouch_status_t hal_captouch_set_coarse_cap |
( |
hal_captouch_channel_t |
通道, |
---|---|---|---|
uint32_t |
粗 |
||
) |
此功能更改粗毛细度上限值。
参量
[在] |
渠道 |
是频道号。有关更多详细信息,请参考hal_captouch_channel_t。 |
---|---|---|
[在] |
粗 |
是corase封顶值。如果在相同的精细上限值中,粗略上限值较大,则平均值和VACD将较小。值的范围应为0 <= coarse <= 7。 |
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
◆ hal_captouch_set_fine_cap()
hal_captouch_status_t hal_captouch_set_fine_cap |
( |
hal_captouch_channel_t |
通道, |
---|---|---|---|
S16 |
精细 |
||
) |
此功能更改细上限值。此API仅可以在手动模式下使用。
参量
[在] |
渠道 |
是频道号。有关更多详细信息,请参考hal_captouch_channel_t。 |
---|---|---|
[在] |
精细 |
是上限金额。如果在相同的粗略上限值中,精细上限值较大,则平均值和VACD将较小。值的范围应为-64 <= fine <= 63。 |
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
◆ hal_captouch_set_threshold()
hal_captouch_status_t hal_captouch_set_threshold |
( |
hal_captouch_channel_t |
通道, |
---|---|---|---|
S16 |
high_thr, |
||
S16 |
low_thr |
||
) |
此功能按通道更改高阈值和低阈值。
参量
[在] |
渠道 |
是频道号。有关更多详细信息,请参考hal_captouch_channel_t。 |
---|---|---|
[在] |
high_thr |
是高阈值。当平均adc值大于此值时,它将触发按下事件。值的范围应为-256 <= high_thr <= 255。 |
[在] |
low_thr |
是低阈值。当平均adc值小于此值时,它将触发释放事件。值的范围应为-256 <= high_thr <= 255。 |
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
◆ hal_captouch_tune_control()
hal_captouch_status_t hal_captouch_tune_control |
( |
hal_captouch_channel_t |
通道, |
---|---|---|---|
hal_captouch_tune_type_t |
tune_type, |
||
hal_captouch_tune_data_t * |
数据 |
||
) |
此功能按通道调整校准值。
参量
[在] |
渠道 |
是频道号。有关更多详细信息,请参考hal_captouch_channel_t。 |
---|---|---|
[在] |
tune_type |
是音调类型模式。有关更多详细信息,请参考hal_captouch_tune_type_t。 |
[出] |
数据 |
是指针调整结果。 |
退货
HAL_CAPTOUCH_STATUS_OK,如果操作成功。
Struct
HAL » CAPTOUCH
Overview
Data Structures | |
---|---|
struct |
hal_captouch_callback_context_t |
This structure defines callback parameter. More... |
|
struct |
hal_captouch_config_t |
This structure defines configuration parameter. More... |
|
struct |
hal_captouch_tune_data_t |
This structure defines tune data. More... |
|
struct |
hal_captouch_event_t |
This structure defines key event data. More... |
|
Enumerations | |
---|---|
enum |
hal_captouch_tune_type_t { HAL_CAPTOUCH_TUNE_SW_AUTO = 0 } |
This structure defines tune type. More... |
|
enum |
hal_captouch_lowpower_type_t { HAL_CAPTOUCH_MODE_NORMAL = 0, HAL_CAPTOUCH_MODE_LOWPOWER = 1 } |
This structure defines power mode type. More... |
|
enum |
hal_captouch_channel_t { HAL_CAPTOUCH_CHANNEL_0 = 0, HAL_CAPTOUCH_CHANNEL_1 = 1, HAL_CAPTOUCH_CHANNEL_2 = 2, HAL_CAPTOUCH_CHANNEL_3 = 3, HAL_CAPTOUCH_CHANNEL_4 = 4, HAL_CAPTOUCH_CHANNEL_5 = 5, HAL_CAPTOUCH_CHANNEL_6 = 6, HAL_CAPTOUCH_CHANNEL_7 = 7, HAL_CAPTOUCH_CHANNEL_MAX = 8 } |
This structure defines channel. More... |
|
Enumeration Type Documentation
◆ hal_captouch_channel_t
enum hal_captouch_channel_t |
---|
This structure defines channel.
Enumerator | |
---|---|
HAL_CAPTOUCH_CHANNEL_0 |
Specifies the channel0. |
HAL_CAPTOUCH_CHANNEL_1 |
Specifies the channel1. |
HAL_CAPTOUCH_CHANNEL_2 |
Specifies the channel2. |
HAL_CAPTOUCH_CHANNEL_3 |
Specifies the channel3. |
HAL_CAPTOUCH_CHANNEL_4 |
Specifies the channel4. |
HAL_CAPTOUCH_CHANNEL_5 |
Specifies the channel5. |
HAL_CAPTOUCH_CHANNEL_6 |
Specifies the channel6. |
HAL_CAPTOUCH_CHANNEL_7 |
Specifies the channel7. |
HAL_CAPTOUCH_CHANNEL_MAX |
Specifies the maximum channel number. |
◆ hal_captouch_lowpower_type_t
enum hal_captouch_lowpower_type_t |
---|
This structure defines power mode type.
Enumerator | |
---|---|
HAL_CAPTOUCH_MODE_NORMAL |
Specify the normal mode |
HAL_CAPTOUCH_MODE_LOWPOWER |
Specify the low-power mode |
◆ hal_captouch_tune_type_t
enum hal_captouch_tune_type_t |
---|
This structure defines tune type.
Enumerator | |
---|---|
HAL_CAPTOUCH_TUNE_SW_AUTO |
Specify the software automatic tune mode. |
Typedef
HAL » CAPTOUCH
Overview
Typedefs | |
---|---|
typedef void(* |
hal_captouch_callback_t) (void *user_data) |
This function registers a callback function when in a normal usage. This function is called after the key is pressed or released in the captouch ISR routine. More... |
|
Typedef Documentation
◆ hal_captouch_callback_t
typedef void(* hal_captouch_callback_t) (void *user_data) |
---|
This function registers a callback function when in a normal usage. This function is called after the key is pressed or released in the captouch ISR routine.
Parameters
[in] |
user_data |
This variable pointer is defined by the user to record the data. |
---|
- AtCoder Beginner Contest 069【A,水,B,水,C,数学,D,暴力】
- 2017"百度之星"程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】
- 洛谷 2634&&BZOJ 2152: 聪聪可可【点分治学习+超详细注释】
- 【经验总结】Java在ACM算法竞赛编程中易错点
- 【Java学习笔记之六】java三种循环(for,while,do......while)的使用方法及区别
- 类A是公共的,应在名为A.java的文件中声明错误
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
- 【Java学习笔记之七】java函数的语法规则总结
- BZOJ 3038: 上帝造题的七分钟2【线段树区间开方问题】
- BZOJ 3211: 花神游历各国【线段树区间开方问题】
- WP、Win10开发或者WPF开发时绘制自定义窗体~例如:一个手机
- 【Java学习笔记之八】JavaBean中布尔类型使用注意事项
- BZOJ 1597: [Usaco2008 Mar]土地购买【斜率优化+凸包维护】
- BZOJ 1046: [HAOI2007]上升序列【贪心+二分状态+dp+递归】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法