[其它应用] 仿真发现的问题

[复制链接]
563|8
 楼主| tian111 发表于 2020-1-17 23:08 | 显示全部楼层 |阅读模式
初识中颖单片机,觉得仿真功能作的不错,可是在学习单片机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;这一步。
          其次,在有时仿真时ADDH,ADDL有时会为0。
songqian17 发表于 2020-1-17 23:11 | 显示全部楼层
是不是我代码做的也有问题
chenho 发表于 2020-1-17 23:14 | 显示全部楼层
是不是给优化了?
gongche 发表于 2020-1-17 23:17 | 显示全部楼层
是不是代码被优化了,所以断点放adc_data=adc;放得上么?
 楼主| tian111 发表于 2020-1-17 23:21 | 显示全部楼层
断点放不上去的。
huwr 发表于 2020-1-17 23:24 | 显示全部楼层
我感觉是代码优化的问题 导致断点位置不对
happy_10 发表于 2020-1-17 23:26 | 显示全部楼层
断点位置出错了
zhuhuis 发表于 2020-1-17 23:32 | 显示全部楼层
应该是被优化掉了,adc_data加个volailte限定词试试
 楼主| tian111 发表于 2020-1-17 23:35 | 显示全部楼层
结贴了,多谢大家讨论这么多哈,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

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