完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在最近的一篇文章中,我试图用一个应用程序函数的当前值更新NVM的一小部分。NVMX写作似乎不起作用。在这个论坛上指出,为了更新值,我需要使用NVMyEraseWrreWe()函数。这是有效的,所以我想知道对擦除写功能的时序效果。我的测试是在FSM中实现以下循环(我正在使用以太网启动器工具包II,PIC32MX795F512L设备):同时(1)擦写一个内存值到NVM等待命令完成更新内存值,每秒打印一条消息到cdc_serial端口,显示wr的次数它的出现是redend.-loopHere(一些)我的结果:我只能得到大约20次写每秒的工作,但是,当它工作时,我的MHC动态计时器慢了2倍或更多。我把定时器的优先级提高到7,但这并没有改变任何事情。如果我尝试超过20次写入/秒,cdc_port就不会连接。通常,当它没有连接并且我点击“停止调试”按钮时,程序将在一个与NVM_FlashWriteCycleHasCompleted_Default(index)相关的PLIB调用中。我注意到调用是嵌入式while循环的一部分,这使我想知道为什么文档建议应用程序需要检查命令的完成。顺便说一句,这解释了为什么我从未看到从EraseWrite返回到检查命令状态之间的任何延迟。最后,我还注意到在同一个while循环附近,中断被禁用。这或许可以解释为什么计时器中断的优先级看起来并不重要,以及为什么计时器会随着我执行更多的EraseWrites而变慢。谁能解释一下这是协调NVM驱动程序的工作方式,还是这里还有其他东西在起作用?
|
|
相关推荐
1个回答
|
|
等待。什么。。。我在NVM上运行程序?我认为MPLABX下载到RAM中。我需要做什么才能从RAM运行?如果数据表上写着30秒,我可以相信。我跑了50ms,没有跑在20毫秒。因为这两个似乎太多(对我来说),我没有尝试任何东西之间。中断中断30MS的时间很长。我得考虑一下后果。谢谢你的洞察力。
|
|
|
|
只有小组成员才能发言,加入小组>>
5018 浏览 9 评论
1925 浏览 8 评论
1864 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3080 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2150 浏览 5 评论
585浏览 1评论
452浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
482浏览 0评论
382浏览 0评论
IPECMD命令烧录AVR128DA48芯片,报找不到芯片错误
864浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-25 00:17 , Processed in 1.112749 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号