打印

仿真的问题

[复制链接]
1650|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 yytpy2008 于 2012-6-25 11:20 编辑

初识中颖单片机,觉得仿真功能作的不错,可是在学习单片机ad功能时,仿真出现了如下的问题:先附源代码:
#include<SH79F083.h>
#define  uint  unsigned  int
#define uchar unsigned char
void main()
{
uint  i,adc,adc_data;
adc=0;
adc_data=0;
ADCON=0x80;
ADT=0x88;
ADCH=0x01;
for(i=0;i<250;i++);
while(1)
{

ADCON|=0x01;
while(ADCON&0x01);
adc = ADDH;
adc = adc<<2 + ADDL;
adc_data=adc;
}
}
仿真结果:首先adc_data一直是0.单步执行能执行到adc = adc<<2 + ADDL;,可是执行不到adc_data=adc;这一步。
        其次,在有时仿真时ADDHADDL有时会为0。附件为仿真时的图。
是不是我代码做的也有问题,请与解答谢谢。


QQ截图20120625110131.png (4.46 KB )

QQ截图20120625110131.png
沙发
缥缈九哥| | 2012-6-25 12:26 | 只看该作者
是不是给优化了?

使用特权

评论回复
板凳
bananarer| | 2012-6-25 20:07 | 只看该作者
是不是代码被优化了,所以断点放adc_data=adc;放得上么?

使用特权

评论回复
地板
yytpy2008|  楼主 | 2012-6-26 08:41 | 只看该作者
断点放不上去的。

使用特权

评论回复
5
nelsonfung| | 2012-6-26 08:44 | 只看该作者
我感觉是代码优化的问题 导致断点位置不对

使用特权

评论回复
6
hnlxy712| | 2012-6-26 13:10 | 只看该作者
断点位置出错了

使用特权

评论回复
7
hnlxy712| | 2012-6-26 13:11 | 只看该作者
断点位置

使用特权

评论回复
8
yytpy2008|  楼主 | 2012-6-26 13:13 | 只看该作者
大家都这样说,结贴……

使用特权

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

本版积分规则

16

主题

75

帖子

1

粉丝