完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,我正在用PIC16F18345芯片做一个项目。在我的节目中,我最近观察到它停止了正常工作,开始了彻底的调查。调查的结果是程序中的一个变量是随机变化的(事实上,它接缝到W寄存器变化)。就我个人而言,它就像2+2有时是4,有时是5,也许是3。程序已经被简化,变量被重命名,然后在其他PIC16F处理器(16F877,16F18875,16F1829)上测试。在所有其他处理器上,它工作正常(即没有随机性),在16F18345上它不工作。我排除了芯片出现故障的可能性:程序已经在两个独立排序序列的6个16F18345芯片上进行了测试。变化的变量是indexWhichRandomlyChangesButWhoKnows.,当步进程序时,在161F18345上可以很容易地观察到。虽然(真){x= Read MsggLo.Lead,它是随机变化的,但是知道为什么;如果(x)!=0xff)//在这个指令index之后,WhichRandomlyChangesButWhoKnows.=0x03mainProcessUartRx();if(x==0xff)//在这个指令索引之后来UART消息。MeaPrExcSturTrx();//当这个指令索引随机变化时,为什么知道为什么= 0xFF}在查看分解输出时,我观察到当W寄存器内容发生变化时,它会发生变化。例如在MealPraseSturTrx中:INTROMPROCESSUARTX(无效)!{!IN RXCH;!如果(UARTrxBuff.Health==UARTrxBuffel.T尾)0x7C4:MOVF 0x75,W0x7C5:XORWF UARTrxBuffe,W 0x7C6:BTFSS状态,0x2 0x7C7:GOTO 0x7CD!RXCH=-1;0x7C8:MOVLW 0XFF 0x7C9:MOVWFαPCSCACHONE 0x7CA:MOVLW 0XFF 0x7CB:MOVWF 0x710x7CC:返回!否则!RXCH=0;0x7CD:CRF Ro.PCSTACKONE 0x7CE:CRF R0x70x7CF:返回随机变化的索引值,知道为什么在0x7C4处改变为0,在0x7C8处为0xFF。在原来的程序中,这个变量控制通信和随机变化,完全破坏了它的工作方式。如果我使用StuttMyDATAsRead Read MsgGrad静态,问题就在16F18345上消失了,但是我仍然相信没有静态工作,它应该工作!要运行的应用程序必须非常可靠,可以决定人们的生活,而我不能承担任何程序模糊。我不能改变处理器-项目接近完成。我使用C/C++已经超过15年了,任何这样的问题都让我很不舒服。我使用Ubuntu 1404.05LTS 64位,MPLAB X V3.40,XC8 V1.38,但是这个问题也可以在XC8V1.37.Windows上看到。有人知道这个索引会发生什么变化吗?为什么变数还是W寄存器?
|
|
相关推荐
1个回答
|
|
这个线程也已经发表在HTTP://www. McCHIP.COM/FUMMS/M947 815ASPX上,所有讨论都在那里发生。请不要在这里回复。我希望我能删除这个线程…
|
|
|
|
只有小组成员才能发言,加入小组>>
5242 浏览 9 评论
2031 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3207 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2256 浏览 5 评论
778浏览 1评论
669浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
596浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
679浏览 0评论
577浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 23:42 , Processed in 1.177304 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号