标题:
仿真时形参的传递不正确
[打印本页]
作者:
majialong@yahoo
时间:
2007-4-28 16:03
标题:
仿真时形参的传递不正确
遇到个很奇怪的问题,我在仿真时,当程序运行到spi_transfer(unsigned char spi_data1,unsigned char spi_data2)这个函数时,形参的传递出错了,第一个形参总是为192,第二个形参的传递则总是正确的。比如spi_transfer(0x0C,0x80),单步进入,spi_data1=192,spi_data2=128;当spi_transfer(0x2E,0x01);单步进入,spi_data1=192,spi_data2=1。奇怪了,这是怎么回事呢?有遇到过这种问题的兄弟姐妹吗
作者:
strongchen
时间:
2007-4-28 17:31
还是把你的project打包贴处理看看吧。
作者:
majialong@yahoo
时间:
2007-4-29 09:13
版主,发给你了,帮忙看看吧,谢谢!
作者:
strongchen
时间:
2007-4-29 10:22
你仔细看一下程序调试过程,就会发现实际上形参spi_data1是由累加器A传递的。在数据框中的spi_data1只是一个随意分配的堆栈地址,实际上它对应于堆栈中变址寄存器HX的高位,即H的值。而H一直是0xC0,所以你看到的spi_data1就是192了。实际上这不影响程序的运行。
另外,建议你在用芯片调试之前,先用软件仿真跑一下。软件仿真会提示出一些甚至在硬件调试中都很难发现的问题。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0