CH582M触摸库发我一份,谢谢!

卡死的问题已经解决,是使用了外部时钟的问题,Demo跑起来没问题,

image.png

我将没使用的按键通道关闭之后,这里有一个的检测值就恢复不到0了,另一个正常,这个是什么原因?


image.png



麻烦也发我一份582的触摸库,邮箱个人信息保护,已隐藏


已发送,注意查收


  if(events & DEALDATA_EVT)

  {

    PeriodicDealData();//每500MS唤醒一次,唤醒后5S进入休眠,休眠继续扫描按键

    tmos_start_task(TouchKey_TaskID, DEALDATA_EVT, TRIGGER_TIME);//500ms唤醒一次

    return (events ^ DEALDATA_EVT);

  }

CH582  蓝牙低功耗触摸事件。每500ms唤醒一次扫描触摸按键。以下有几个疑问,望解答下。


以下自己理解的,不知道是否正确。

设备休眠与否是蓝牙协议栈来管理的,蓝牙协议栈根据任务是否在运行而判断是否进入休眠状态。

1:以上这个事件明显是一直在运行,即500ms事件一直存在没有停止,这样怎么就判断这个任务已经完成了呢?还是协议栈对触摸这个事件另有相应的处理。

2:按照上面的逻辑自己建立一个事情每600ms循环一次,是否也就意味着会自动600ms唤醒呢!还是需要另外设置。



是否正确执行该任务可以通过加打印观察函数是否有执行完成。

通过tmos添加任务,则协议栈会管理好对应的时间的,需要再手动的去考虑执行。尤其是在开启睡眠的情况下,通过TMOS则由协议栈管理好对应的唤醒,不再需要自行调用睡眠函数。

可以自行建立一个tmos任务进行循环,如你所判断的一致,会在设定的时间唤醒的。

以下是睡眠的管理和tmos任务的管理博客,可参考:

CH573芯片Sleep说明(RTC程序说明) - SweetTea_lllpc - 博客园 (cnblogs.com)

WCH TMOS用法详解 - debugdabiaoge - 博客园 (cnblogs.com)


我上面的那个问题可能原因是什么?12个触摸按键检测通道全部打开,是没有问题的,我削减其他的只剩两个的时候,有一个是正常的,另一个不太正常,但是这两个的基线值都在3000-3600之间,他有一个的检测值一直是1400左右,恢复不到0


之前有在微信群聊提供了你最新的触摸库,只需要管理好对应channel引脚(代码后面有明确的注释,修改哪些,不修改哪些)。基于发你的最新的代码直接修改你的功能即可。上面引脚无法恢复自行检查引脚的对应关系。硬件方面注意不需要接电容,可以参考之前发你的硬件博客参考。


const  code UINT8  Firmware_Edition[7]={'V','1','.','1','.','3',0};


常量好像不能存储在code里面么!还是写法不对


您好,直接用const就可以了。


我用LCD显示屏,好多字库,中英文,看ROM大,想放里面。


您好,用const之后,数据就是放在448k的code区的,可以打印看下数据的地址。

另外确认使用的是链接中的配置:https://www.cnblogs.com/debugdabiaoge/p/16651149.html


好的,谢谢


蓝牙低功耗项目工程的时候625us执行一条命令是吧!

加载1.77寸液晶显示屏的时候非常慢,

可否在液晶屏的时候将执行命令周期提上来,完了再还原。


模拟SPI,硬件SPI,DMA,3个在625us时钟的情况下那个最快


刷屏的时候,需要蓝牙保持连接的话,将你的刷屏的任务拆分一下,确保每个任务小于蓝牙连接间隔的一半。

TMOS任务可以配置为立马执行,提供一份博客参考:

WCH TMOS用法详解 - debugdabiaoge - 博客园 (cnblogs.com)


只有登录才能回复,可以选择微信账号登录