瑞萨 RA2E1 触摸按键使用例程

1. 概述

RA2E1 产品群是 RA 系列的入门级单芯片微控制器,基于48 MHz Arm® Cortex®-M23 内核,具有高达 128 kB 的代码闪存以及 16 kB SRAM  这款产品采用优化的制程和瑞萨电子的低功耗工艺技术,是业界一流水平的超低功耗微控制器。RA2E1 产品支持 1.6V 5.5V 的宽工作电压范围和多种封装(25 引脚封装扩展至 64 引脚封装),特别适用于电池供电应用以及空间受限应用,以及其他需要高性能和低功耗的系统。并具有增强型电容式触摸感应单元 (CTSU),最多可以支持30个触摸按键。

本文介绍基于e2studio开发环境,介绍通过FSP配置生成RA2E1触摸按键代码,以及触摸灵敏度的调试。

软件准备: e² studio 2021-10 或者更新版本, gcc arm编译器,FSP3.6,  Renesas QE for Capacitive Touch    3.0.2。

硬件准备:EK-RA2E1,CPK-RA2E1或者任意一个RA2E1的板子。

2.工程配置

1. 新建一个RA C/C++ 可执行工程

2.  输入工程名称,选择文件路径。

3. 选择FSP版本,板子芯片(本文为RA2E1A7DFL,根据板子情况可以是EK-RA2E1或CPK-RA2E1)。

4. 选择工程类型。

5. 选择工程模板。

6. 完成之后可以打开 FSP的配置,点击BSP可以看到BSP的配置属性。

如果没有出现FSP的属性,可以通过 Window -> Show View -> Properites打开。

7. 点击Stacks标签,点击 New Stack,分别添加CapTouch -> CTSU(r_ctsu) 驱动以及 CapTouch -> Touch(rm_touch)中间件。

8. 点击 Add DTC Driver for Transmission 以及 Add DTC Driver for Reception,使能DTC。

9. 点击Stack里面的 CTSU,查看属性,配置Support for using DTC-> Enabled,同时点击小Pins小箭头切换至管脚Pins配置。

10. 在Pins标签里面配置TSCAP管脚,以及相应的触摸通道管脚。配置完成按Generate Project Content生成代码。

11. 这时候项目生成了包含BSP, r_ctsu, rm_touch的代码。

3.QE 配置触摸按键

1. 打开CapTouch Main(QE)。

2. 点击Select the target project选择工程 ra2e1_touch。点击To Prepare a Configuration 下拉,选择新建一个配置文件。

3. 配置文件如下配置。点击Button 并移动到中间空白处点击,鼠标左键单击添加一个Button,添加完之后,按 “ESC“键退出添加Button。

4. 双击 Button00可以修改Touch Sensor的属性,指定Touch Sensor,以及对应的Resistance。

5. 配置完成,所有Button显示为绿色,可以点击Create创建配置文件。

6. 回到Touch main窗口,确保电脑通过仿真器连接RA2E1板子,点击Start Tuning。

7. e² studio编译器自动编译,并下载到芯片,显示如下界面。

8. 如果顺利会自动去到第5步,这时会提示触摸按键Button00。

9. 用手指触摸按键Button00, 显示如下触摸值,这时候同时按下键盘任意键确认。

10. Button01可以同样调整。调整完成后显示如下界面,点击Continue the Tuning Process。

11. 回到CapTouch Main(QE),点击 Output Parameter File。

12. 点击Show Sample。

13. 显示如下内容,点击Output to a File输出触摸按键处理文件。

14. 最终生成的文件如下。

4.添加代码

hal_entry.c 修改如下代码,在hal_entry()函数调用qe_touch_main(),并编译工程。

extern void qe_touch_main(void);


void hal_entry(void)
{
    /* TODO: add your own code here */

    qe_touch_main();
#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}

5. 仿真调试

1. 在CapTouch Main(QE)窗口,点击Show Views打开CapTouchStatus窗口。

2. CapTouch Status 窗口如下,可以通过Touch I/F 选择触摸通道。

3.  通过 Renesas View -> Renesas QE -> CapTouch Multi Status Chart,打开多路触摸检测窗口。同理可以打开CapTouch Pad Monitor检测窗口。

4. 全速运行程序,并打开监控(Enable Monitoring),可以看到 下面两个窗口显示了Touch 的测量值。下面为按下按键1的情况。 

 

6. 用户代码添加

qe_sample_main.c文件内容如下。

#include "qe_touch_config.h"
#define TOUCH_SCAN_INTERVAL_EXAMPLE (20)    /* milliseconds */

void qe_touch_main(void);

uint64_t button_status;
#if (TOUCH_CFG_NUM_SLIDERS != 0)
uint16_t slider_position[TOUCH_CFG_NUM_SLIDERS];
#endif
#if (TOUCH_CFG_NUM_WHEELS != 0)
uint16_t wheel_position[TOUCH_CFG_NUM_WHEELS];
#endif

void qe_touch_main(void)
{
    fsp_err_t err;

    /* Open Touch middleware */
    err = RM_TOUCH_Open(g_qe_touch_instance_config01.p_ctrl, g_qe_touch_instance_config01.p_cfg);
    if (FSP_SUCCESS != err)
    {
        while (true) {}
    }

    /* Main loop */
    while (true)
    {
        /* for [CONFIG01] configuration */
        err = RM_TOUCH_ScanStart(g_qe_touch_instance_config01.p_ctrl);
        if (FSP_SUCCESS != err)
        {
            while (true) {}
        }
        while (0 == g_qe_touch_flag) {}
        g_qe_touch_flag = 0;

        err = RM_TOUCH_DataGet(g_qe_touch_instance_config01.p_ctrl, &button_status, NULL, NULL);		// scan the key data,save to button_status
        if (FSP_SUCCESS == err)
        {
            /* TODO: Add your own code here. */

        }


        /* FIXME: Since this is a temporary process, so re-create a waiting process yourself. */
        R_BSP_SoftwareDelay(TOUCH_SCAN_INTERVAL_EXAMPLE, BSP_DELAY_UNITS_MILLISECONDS);
    }
}

可以见用户的代码一般需要在qe_touch_main()的主循环里面添加。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值