完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我是新来的PIC,只和它工作了几个星期。我希望我没有问一个愚蠢的问题,如果是这样的话,请原谅我!我上网查过,找不到有类似问题的人,所以自己调试有点困难。我买了一台Microstick II,我用的是PIC32MX250F128B。我用的是MPLAB X IDE 3.50和XC32 V1.42编译器。长话短说,代码编译,但在我的输出中得到的答案与预期不同。因此,我运行模拟器来检查每一个步骤。无论是使用模拟器还是在实际设备上进行仿真,都存在同样的问题。在这个例子中,我使用模拟器。我按下“调试主项目”按钮,它编译,然后我按下暂停和重置。我的代码的第一行被突出显示绿色预期。当我使用F7进入下一个指令时,不遵循逻辑进程。下面是详细内容,从变量定义开始。我没有包含所有的代码,因为它处理我测试过的其他例程。如果您需要整个程序,那么我会重新发布。模拟不规则的代码是这样的:我不能附加带有行号的屏幕快照,因为微芯片声称我没有权限。这是另一天的问题。如果我“运行到光标”到“ANSELBITS.ANSB3=1;”指令,该行变为绿色。我只是使用这个虚拟指令作为占位符进行模拟,因为如果我尝试运行for循环的开始,MPLAB似乎会失去它的大理石。现在,我期望当我按F7时,它将进入循环以将Estimator数组设置为0,并将显示所有9个位置都设置为0。然而,相反,它跳转到“B=ifftl输出(0).re;”;再次按下F7跳转到“ANSELBITS.ANSB3=1”,并按下F7再次跳转到“A(0)=1”行。这种不规则的行为继续进行,没有程序的逻辑流程,这显然不允许我通过指令模拟指令到底发生了什么。请帮助!查尔斯的好感
|
|
相关推荐
5个回答
|
|
|
|
我猜编译器正在优化代码,因为它假定Estimator[]和A[]已经为0。在按F7进入下一个指令之前,打开Windows->Debuging->Memory Views(Program Memory-goto code view),看看正在执行什么指令。我猜您将看到,在程序内存-程序集级别,您正在跳过的C行实际上没有任何代码。
|
|
|
|
XC32默认为32位双精度的。虽然这是一个真实的语句,但是在OP的代码中没有看到任何比较,所以不相关。对于OP:编译器可能正在计算您为Estimator和C分配的值(零),这些值在函数中从未使用过,并在以后被重写,因此它删除了代码。确保优化关闭。对于调试,您可以将C,Estimator声明为易失性以确保代码生成。
|
|
|
|
如果你。需要一个断点USENOP()的哑指令;
|
|
|
|
谢谢大家!最后,根据我升级到PIC32MZ的浮点定时的建议,它执行代码的速度大约比我的应用程序快20倍。不稳定的行为问题是由于选择了任何一个以外的优化。
|
|
|
|
只有小组成员才能发言,加入小组>>
5184 浏览 9 评论
2005 浏览 8 评论
1932 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3179 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2229 浏览 5 评论
739浏览 1评论
626浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
511浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
637浏览 0评论
535浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 09:23 , Processed in 1.391105 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号