完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
关于CSD Capsense的ISR我这边有几点困惑,麻烦给解释一下,谢谢。
我看了Cpasense组件的Datasheet,关于 Interrupt 的描述比较少,当所有按键扫描完成后会触发中断; 1、触发Capsense中断后,测量数据复制到定义的数据结构中不是在中断函数里执行的,是通过调用CapSense_ProcessAllWidgets()函数去处理的吧,还是有其他的函数; 2、CSD Capsense 在扫描过程中是需要CPU参与的吧,这主要体现哪些方面需要占用CPU的资源? 3、如果CSD占用CPU的资源,由于按键扫描时间太长,会导致其他任务得不到及时处理,采用非阻塞的方式(即判断CapSense_IsBusy() == CapSense_NOT_BUSY)也是无法解决的吧。 4、目前竞品遇到了第3点的问题,我们有没有好的解决办法。 |
|
相关推荐
2个回答
|
|
1: 是的,时间只是算了硬件的扫描时间,没有计算软件的执行时间。
2:你可以把需要执行的任务的中断优先级调高,这样的话,就会先执行另外的任务,而不是执行CSD中断。CSD是不需要block住直到扫描完毕,同时可以执行别的任务。 3:这里需要详细的了解一下,目前在别的产品上面遇到的具体问题的详细信息。以及,客户是一个什么应用,需要达到什么效果,综合分析,我们是否可以达到要求。 4:PS0C4100S Max是有两种方式,一个是INT driven,这个就和我们之前的方式是一样的,另外一个是CS-DMA,这种方式就是扫描好了才触发中断,但是还是要CPU响应中断的。 |
|
|
|
1、触发Capsense中断后,测量数据确实不是在中断函数里执行的,而是通过调用CapSense_ProcessAllWidgets()函数进行处理的。除此之外,还可以通过其他相关函数获取测量数据,例如CapSense_GetCentroidPos()函数用于获取探电极的位置信息。
2、是的,CSD Capsense在扫描过程中需要CPU参与。CPU会执行CSD Capsense的工作周期,包括控制引脚的电平切换,电容值的充放电等。此外,CPU还需要处理CSD Capsense的中断请求和测量数据的处理。 3、CSD Capsense占用CPU的资源,确实可能导致其他任务得不到及时处理。为了避免这种情况,可以采用非阻塞的方式进行按键扫描。通过设置CSD Capsense的中断级别,使得其优先级较低,从而确保其他任务能够及时处理。此外,还可以采用定时器中断来配合按键扫描,以确保按键扫描不会占用太长时间。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
386 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1670 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1123 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1005 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1229 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12018 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 11:43 , Processed in 0.590409 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号