找回密码
 立即注册
楼主: Tank2535

关于8H8K64TL触摸滑轮的脚位功能切换问题

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-12-23 12:42:55 | 显示全部楼层
Tank*** 发表于 2024-12-23 12:31
TS_Ring=0已加,Ring还是0.其他没看出啥问题。
#include
#include

修改TS_MAP数组,然后就会根据TSSTA2扫描完某个通道的结果保存到TS_BUF[0][n]
0是读到的寄存器值,1是滤波后的

串口命令(HEX模式)
50取消校准状态
51校准当前通道最小值
52校准当前通道最大值
53校准所有通道最小值
54校准所有通道最大值

串口发送一个字节,低4位是通道号,高4位是TS_BUF[x][n]中的x

不要触摸,发一下53,过一两秒钟发54,全部按正常触摸方式触摸一遍(不要用力按),然后发50,校准完成

正确校准后
TS_BUF[2][n]是TS_BUF[1][n]的最小值
TS_BUF[3][n]是TS_BUF[1][n]的最大值

然后TS_BUF[4][n]就能正确输出0~4095

触摸滑环函数计算,输出0~4095到Ring变量

TS_Ring低3位是触摸滑环是否按下的状态,最高位是触摸滑环是否有效(3个触摸按键中有任意一个按下为有效),这三个触摸按键,全0和全1无效
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:101
  • 最近打卡:2025-05-01 08:57:24
已绑定手机

5

主题

22

回帖

519

积分

高级会员

积分
519
发表于 2024-12-23 14:10:13 | 显示全部楼层
Debu*** 发表于 2024-12-23 12:42
修改TS_MAP数组,然后就会根据TSSTA2扫描完某个通道的结果保存到TS_BUF[0][n]
0是读到的寄存器值,1是滤 ...

还是没整明白,Ring依然是0。老大,有时间出个教程!让我们可以好好的学习一下!

点评

各个值printf出来串口助手看看 [attachimg]76029[/attachimg] [attachimg]76031[/attachimg] [attachimg]76032[/attachimg] [attachimg]76033[/attachimg]  详情 回复 发表于 2024-12-23 14:13
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-12-23 14:13:47 | 显示全部楼层
Tank*** 发表于 2024-12-23 14:10
还是没整明白,Ring依然是0。老大,有时间出个教程!让我们可以好好的学习一下! ...

各个值printf出来串口助手看看
截图202412231411478520.jpg

截图202412231412415422.jpg

截图202412231412597173.jpg

截图202412231413351202.jpg

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:101
  • 最近打卡:2025-05-01 08:57:24
已绑定手机

5

主题

22

回帖

519

积分

高级会员

积分
519
发表于 2024-12-25 16:25:34 | 显示全部楼层
Debu*** 发表于 2024-12-23 14:13
各个值printf出来串口助手看看

滑轮已经OK了,就是灵敏度不够,是咋调的?另外memset(R_Buf,0x00,sizeof R_Buf);
        memset(T_Buf,0x00,sizeof T_Buf);
        memset(TS_Buf,0x00,sizeof TS_Buf); 这几个涵数,比较出来的结果也没见哪儿调用。TS_Buf[2][0x00]=11830;
        TS_Buf[2][0x01]=11590;
        TS_Buf[2][0x02]=11040;
        TS_Buf[2][0x03]=10870;
        TS_Buf[2][0x04]=10760;
        TS_Buf[2][0x05]=13970;
        TS_Buf[2][0x06]=14080;
        TS_Buf[2][0x07]=14020;
        TS_Buf[2][0x08]=10690;
        TS_Buf[2][0x09]=10960;
        TS_Buf[2][0x0A]=11180;
        TS_Buf[2][0x0B]=11010;
        TS_Buf[3][0x00]=14820;
        TS_Buf[3][0x01]=14850;
        TS_Buf[3][0x02]=14740;
        TS_Buf[3][0x03]=14530;
        TS_Buf[3][0x04]=14690;
        TS_Buf[3][0x05]=15010;
        TS_Buf[3][0x06]=15040;
        TS_Buf[3][0x07]=15100;
        TS_Buf[3][0x08]=14460;
        TS_Buf[3][0x09]=13610;
        TS_Buf[3][0x0A]=14090;
        TS_Buf[3][0x0B]=14200;这些参数是如何确定的?谢谢!

点评

memset是给数组清零的 TS_Buf[2][n]是TS_Buf[1][n]的最小值 TS_Buf[3][n]是TS_Buf[1][n]的最大值  详情 回复 发表于 2024-12-25 16:30
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-12-25 16:30:15 | 显示全部楼层
Tank*** 发表于 2024-12-25 16:25
滑轮已经OK了,就是灵敏度不够,是咋调的?另外memset(R_Buf,0x00,sizeof R_Buf);
        memset(T_Buf,0x00,si ...

memset是给数组清零的
TS_Buf[2][n]是TS_Buf[1][n]的最小值
TS_Buf[3][n]是TS_Buf[1][n]的最大值

校准值说明:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=9925

截图202412251632086935.jpg

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:101
  • 最近打卡:2025-05-01 08:57:24
已绑定手机

5

主题

22

回帖

519

积分

高级会员

积分
519
发表于 2024-12-26 14:51:04 | 显示全部楼层
Debu*** 发表于 2024-12-25 16:30
memset是给数组清零的
TS_Buf[2][n]是TS_Buf[1][n]的最小值
TS_Buf[3][n]是TS_Buf[1][n]的最大值

我把Ring/4/10,限制Ring值从10-100,但是有个问题没找到原因,就是Ring值大概在35左右的时候会突然出现个100
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:07 , Processed in 0.127910 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表