完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
对不起,这将是一个很长的职位。首先,有一点背景: 我使用PSoC 5LP原型套件(CY8C588Lti-LP097)。IAM目前正在使用一个可用的EMFLAMP组件登录到SD卡上的数据日志记录应用程序。 数据是加速度计数据(ADXL362)的形式,我得到它来产生中断,并在新的数据测量可用时提醒PSOC。在我的代码中,PSoC应用程序在这些中断上输入中断服务例程,在SPI接口上检索数据(8位X、Y和P;Z),然后将此数据存储在缓冲器中(UIT8ACCELSORPHED [缓冲区大小])。实例变量(缓冲区索引)跟踪缓冲区的当前位置——在每次连续的数据保存之后增量到缓冲区内的下一个空位置。 在主应用程序中,通过该索引变量(缓冲区索引)检查缓冲区级别。当缓冲区索引=缓冲区大小时,程序进入一个中断中断的临界区。这里PSoC执行SD卡,节省了IMAFIE接口。 当保存完成时,程序退出临界段(中断被重新启用),索引变量被重置为0(AccelFuff-AccelFuffd(0))的第一个位置。 程序以这种方式继续运行。 ------------------------------------------------------------------------------------------------------ 我的问题是,是否有更有效的方式来处理SD卡的保存——即,当没有任何事情发生时,能够将PSoC置入低功耗模式(即,没有加速度计产生的中断,没有SD卡的保存)。如果主循环中的缓冲区索引=缓冲区大小,则当前威廉希尔官方网站 不断地进行评估。 我不知道如何重构这个代码,以便: (1)当SD卡保存不发生时PSoC进入低功耗模式。当发生中断时,PSoC唤醒并服务中断(即检索加速度计数据并保存到缓冲器)并再次进入低功耗模式。 (2)当缓冲器大小满时,PSoC唤醒并将缓冲内容保存到SD卡,然后再次进入低功耗模式。 我想做的唯一方法是在新的加速度计数据被保存到缓冲器之后,检查缓冲区是否满(即,如果(BuffeCurry==Buffelx大小)…)。如果缓冲区是满的(即缓冲区索引=缓冲区大小),我想我可以用软件触发另一个中断,将缓冲区内容保存到SD卡。在其他时间,PSoC将处于低功耗模式。然而,我所听到的不是在ISRS内做这种类型的东西(SD卡保存),因为它们是用于代码的短部分。 那么,如何最好地优化应用程序并利用PSoC的低功耗模式能力呢? 任何建议,建议,建议将高度赞赏!提前谢谢! |
|
相关推荐
1个回答
|
|
首先,避免BuffRealth==缓冲区大小。出于安全原因,使用BuffeRealth≫= BuffelyStand。
请参阅AN7900关于如何使PSoC走出深度睡眠。 最简单的处理方法是在成功检索加速度计数据和BuffeRealth& lt;BuffelyStand之后,进行深度睡眠。 鲍勃 |
|
|
|
只有小组成员才能发言,加入小组>>
760个成员聚集在这个小组
加入小组2151 浏览 1 评论
1897 浏览 1 评论
3718 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1828 浏览 6 评论
1574 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
778浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
536浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
482浏览 2评论
443浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
1138浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-23 18:38 , Processed in 0.668925 second(s), Total 42, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191