[开发板与模块] 【ESK32-30519 + ESK32-21001测评】+触摸键测试设置处理

[复制链接]
 楼主| jinglixixi 发表于 2022-10-6 17:52 | 显示全部楼层 |阅读模式
<
本帖最后由 jinglixixi 于 2022-10-6 18:02 编辑

在核心板上配有6个触摸按键,在进行参数设置时会面临这样的问题,即若每个触摸键对应一个数符的话,其按键数量显然是不够用的,为此最后是以增减数值的方式来实现,即分配4个键,分别用于+1-1、移位及确认处理。那是否在例程的基础上就能轻松地来实现呢?其实并非如此简单,因为例程是为功能演示而设计的,若直接在它的基础上进行功能修改,会出现+1键或-1键在按下后,快速多次更改数值的情况。也就是说它缺少一个判别按键释放的过程,从而被视为是该按键是按下了多次的问题。解决该问题的主程序如下:
  1. int main(void){
  2.     u8 showNumber0=0;
  3.     GPIO_Configuration();
  4.     LEDC_Configuration();
  5.     RTC_Configuration();
  6.     BFTM_Configuration();
  7.     TKL_Configuration();
  8.     #ifdef  HXT_UART_DEBUG
  9.     TKL_USART_Configuration();
  10.     #endif
  11.     LEDC_SetData(HTCFG_LEDC_COM_D4,  NumberChar[0]);
  12.     showNumber0=0;
  13.     f=1;
  14.     while(f){
  15.                        if(gIsUpdateChar)
  16.                        {
  17.                             LEDC_SetData(HTCFG_LEDC_COM_D4,  NumberChar[showNumber0]);
  18.                             gIsUpdateChar = FALSE;
  19.                         }
  20.                         Touch_Key_Main_Function();
  21.                         if(TKL_Is_KeyPress(16))  // PAD2
  22.                         {
  23.                                 if(showNumber0>0) showNumber0=showNumber0-1;
  24.                                 else  showNumber0=9;
  25.                                 while(TKL_Is_KeyPress(16))
  26.                                 {
  27.                                     Touch_Key_Main_Function();
  28.                                 }
  29.                         }
  30.                         if(TKL_Is_KeyPress(17))  // PAD1
  31.                            {
  32.                                 if(showNumber0<9)showNumber0=showNumber0+1;
  33.                                 else showNumber0=0;
  34.                                 while(TKL_Is_KeyPress(17))
  35.                                 {
  36.                                     Touch_Key_Main_Function();
  37.                                 }
  38.                         }
  39.                         if(TKL_Is_KeyPress(22))   // PAD4
  40.                         {
  41.                                 n=n%100;
  42.                                 n=n*10+showNumber0;
  43.                                 LEDC_SetData(HTCFG_LEDC_COM_D1,  NumberChar[n%1000/100]);
  44.                                 LEDC_SetData(HTCFG_LEDC_COM_D2,  NumberChar[n%100/10]);
  45.                                 LEDC_SetData(HTCFG_LEDC_COM_D3,  NumberChar[n%10]);
  46.                                 showNumber0=0;
  47.                                 LEDC_SetData(HTCFG_LEDC_COM_D4,  NumberChar[showNumber0]);
  48.                                 while(TKL_Is_KeyPress(22))
  49.                                 {
  50.                                     Touch_Key_Main_Function();
  51.                                 }
  52.                         }
  53.                         if(TKL_Is_KeyPress(24))   // PAD6
  54.                         {
  55.                                 while(TKL_Is_KeyPress(24))
  56.                                 {
  57.                                     Touch_Key_Main_Function();
  58.                                 }
  59.                                 n=n*10+showNumber0;
  60.                                 f=0;
  61.                         }
  62.           }
  63.           while (1){
  64.           if(gIsUpdateChar)
  65.           {
  66.                  LEDC_SetData(HTCFG_LEDC_COM_D1,  NumberChar[n/1000]);
  67.                  LEDC_SetData(HTCFG_LEDC_COM_D2,  NumberChar[n%1000/100]);
  68.                  LEDC_SetData(HTCFG_LEDC_COM_D3,  NumberChar[n%100/10]);
  69.                  LEDC_SetData(HTCFG_LEDC_COM_D4,  NumberChar[n%10]|0X02);
  70.                  gIsUpdateChar = FALSE;
  71.           }
  72.         }
  73. }




其中,相应触摸键的功能设置如下:
PAD1+1(增1键)
PAD2-1(减1键)
PAD4<-(移位键)
PAD6CR(确认键)
经程序的编译和下载,其运行效果如图1至图3所示。为了便于观察确认后的效果,特在设置值的后面配上了一个小数点以示完成处理。此外,增减键是在数值0~9之间来递变的。移位键的功能则是使设置值向左移动,即数值增大10倍。 1.jpg
1  设置数值
2.jpg
2  移位处理
3.jpg
3  完成设置





chenqianqian 发表于 2022-10-9 18:52 来自手机 | 显示全部楼层
屏怎么是白的?没有做驱动?
 楼主| jinglixixi 发表于 2022-10-10 10:14 | 显示全部楼层
chenqianqian 发表于 2022-10-9 18:52
屏怎么是白的?没有做驱动?

哦,当时没使用,免的用时再连线没拆去显示屏。
xu@xupt 发表于 2022-12-10 13:36 | 显示全部楼层
学习啦,感谢分享
LEDyyds 发表于 2022-12-28 10:35 | 显示全部楼层
触摸按键是采集电压值吗,准不准
 楼主| jinglixixi 发表于 2022-12-29 00:34 | 显示全部楼层
LEDyyds 发表于 2022-12-28 10:35
触摸按键是采集电压值吗,准不准

很灵敏,以致怕近邻的影响。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

518

主题

2934

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部

518

主题

2934

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部