打印

PIC软仿进不去程序

[复制链接]
1627|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyz549040622|  楼主 | 2013-6-9 02:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如下面所示一小段代码,用MPLAB软仿的时候竟然进不去,提示不执行,什么原因?
void AD5662_reg_write(unsigned int En_DA_Num, unsigned int Mode, unsigned int RegisterData)
{
    unsigned long ControlValue = 1;
//    unsigned int i = 0;
       
        //Create the 24-bit
        Mode = Mode + 0x01;
            ControlValue++;

编译提示为_ControlValue" is not used,就是说没有执行
Mode = Mode + 0x01;
ControlValue++;
这两条语句,这是什么原因导致的呢?

沙发
弓长月月鸟| | 2013-6-9 07:44 | 只看该作者
建议版主在ControlValue++; 语句后面,增加一个if(ControlValue>=10) ControlValue=0;软件再编译一下进行软仿。我这两天也发现这个问题。后来这样试了试,这个变量就被用了。软仿也是没有问题的。版主不妨试试,希望能帮上您

使用特权

评论回复
评论
xyz549040622 2013-6-12 16:26 回复TA
4.5,6楼说的有道理,估计是优化级别的问题 
评分
参与人数 1威望 +2 收起 理由
xyz549040622 + 2
板凳
jlass| | 2013-6-9 09:15 | 只看该作者
把ControlValue++改成ControlValue=ControlValue+1试试。

使用特权

评论回复
地板
yewuyi| | 2013-6-9 10:03 | 只看该作者
无意义代码。

ControlValue固定赋值为1,然后再加1,而且也没有实际意义的使用这个临时变量,对于编译器来说,就会被当成无效代码直接优化掉。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
xyz549040622 + 2
5
llqjmy| | 2013-6-9 17:09 | 只看该作者
你是不是用的PICC?代码被优化了。用PICC进行仿真的时候,经常碰到这种问题的。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
xyz549040622 + 2 优化等级降到最低?
6
Ryanhsiung| | 2013-6-10 19:15 | 只看该作者
可以将优化等级拉到最低,试一下看看

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
xyz549040622 + 2
7
xyz549040622|  楼主 | 2013-6-10 22:01 | 只看该作者
发现一件事情,PIC的形参无法直接进行运算,必须赋值给一个中间变量,再用中间变量运算才可以

使用特权

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

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2810

主题

19297

帖子

104

粉丝