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

[复制链接]
4410|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问题可能出来上电时序等上面。
 楼主| zdhlixiang2006 发表于 2010-11-20 20:50 | 显示全部楼层
我在万般无奈中,抱着试试的心态改了主机的时钟频率,将频率提高为原来的16倍之后,一切都正常了,但我不知道原因。。。按理说不是波特率越低越不容易出错吗?还是不明白
 楼主| zdhlixiang2006 发表于 2010-11-20 20:51 | 显示全部楼层
板子有独立的开关电源供电
 楼主| zdhlixiang2006 发表于 2010-11-20 20:54 | 显示全部楼层
:L 我想问一个问题:假如你的程序没有产生你预期的现象或者结果,程序本身又看不出来问题所在,怎么办?
yewuyi 发表于 2010-11-21 11:15 | 显示全部楼层
:L 我想问一个问题:假如你的程序没有产生你预期的现象或者结果,程序本身又看不出来问题所在,怎么办?
zdhlixiang2006 发表于 2010-11-20 20:54


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

等等手段可以帮助你找到问题,当然基本的理解代码的能力还是需要的,否则一切徒劳.
 楼主| zdhlixiang2006 发表于 2010-11-21 16:59 | 显示全部楼层
哦。。学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

21

主题

523

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部