打印

用仿真器在线调试和实际结果不一样???

[复制链接]
3656|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zdhlixiang2006|  楼主 | 2010-11-20 12:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用PIC在做SPI实验时,发现一个奇怪的现象:用ICD2在线运行情况下,发送和接收都是正常的,但是只要拔掉下载设备让主机和从机自己运行时收到的数据就不对,发送暂时不知道是不是正常。但是我一直想不通,都说在线调试是最准确的(可能和实际也有一点不一样),为什么会出现这种现象呢?请高人指点

相关帖子

沙发
liang7143| | 2010-11-20 12:44 | 只看该作者
检查下电源,看地线是否连上,电源是否够驱动负载。

使用特权

评论回复
板凳
NE5532| | 2010-11-20 13:27 | 只看该作者
其实我调程序从不仿真。别信仿真器,那东西不一定对。

使用特权

评论回复
地板
yewuyi| | 2010-11-20 14:55 | 只看该作者
ICD2是使用的MCU自身资源,一般不会出现这个问题。

估计LZ问题可能出来上电时序等上面。

使用特权

评论回复
5
zdhlixiang2006|  楼主 | 2010-11-20 20:50 | 只看该作者
我在万般无奈中,抱着试试的心态改了主机的时钟频率,将频率提高为原来的16倍之后,一切都正常了,但我不知道原因。。。按理说不是波特率越低越不容易出错吗?还是不明白

使用特权

评论回复
6
zdhlixiang2006|  楼主 | 2010-11-20 20:51 | 只看该作者
板子有独立的开关电源供电

使用特权

评论回复
7
zdhlixiang2006|  楼主 | 2010-11-20 20:54 | 只看该作者
:L 我想问一个问题:假如你的程序没有产生你预期的现象或者结果,程序本身又看不出来问题所在,怎么办?

使用特权

评论回复
8
yewuyi| | 2010-11-21 11:15 | 只看该作者
:L 我想问一个问题:假如你的程序没有产生你预期的现象或者结果,程序本身又看不出来问题所在,怎么办?
zdhlixiang2006 发表于 2010-11-20 20:54


这就需要你具备基本的DEBUG能力,例如可以一块一块的调试验证,也可以单步调试验证,也可以简化为最小函数验证,也可以手工赋值验证...

等等手段可以帮助你找到问题,当然基本的理解代码的能力还是需要的,否则一切徒劳.

使用特权

评论回复
9
zdhlixiang2006|  楼主 | 2010-11-21 16:59 | 只看该作者
哦。。学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:沐浴着XX的春风,义无反顾游荡在马勒戈壁

21

主题

523

帖子

2

粉丝