前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AB153x API----captouch驱动程序

AB153x API----captouch驱动程序

作者头像
心跳包
发布2020-08-31 15:12:09
5720
发布2020-08-31 15:12:09
举报
文章被收录于专栏:嵌入式智能硬件

总览

本节介绍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()取消初始化。
    • 样例代码:
代码语言:javascript
复制
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()来找到适当的粗略上限值。
代码语言:javascript
复制
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.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总览
  • 术语和首字母缩写词
  • 支持的功能
  • 如何使用此驱动程序
    • hal_captouch_channel_disable()
      • hal_captouch_channel_enable()
        • ◆ hal_captouch_deinit()
          • ◆ hal_captouch_get_event()
            • ◆ hal_captouch_init()
              • ◆ hal_captouch_lowpower_control()
                • ◆ hal_captouch_set_avg()
                  • ◆ hal_captouch_set_coarse_cap()
                    • ◆ hal_captouch_set_fine_cap()
                      • ◆ hal_captouch_set_threshold()
                        • ◆ hal_captouch_tune_control()
                          • Overview
                            • Enumeration Type Documentation
                              • ◆ hal_captouch_channel_t
                                • ◆ hal_captouch_lowpower_type_t
                                  • ◆ hal_captouch_tune_type_t
                                    • Overview
                                      • Typedef Documentation
                                        • ◆ hal_captouch_callback_t
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档