打印
[ZLG-ARM]

帮忙看看这几句简单的语句

[复制链接]
1208|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
变色镜|  楼主 | 2008-1-11 12:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
volatile uint8 r485cmd; 
volatile uint8 uping;

........................................其他代码
while (1)
    {       
        if (r485cmd!=0&&uping==0)      
        {                   
            uping =1;         
            U0THR=uptom_buf[0];         
            uptomcnt=1;         
        }      
    }   
.......................................其他代码
说明:r485cmd、uping都是全局变量,目的当r485cmd不是0,且uping为0时执行if语句,但是会出现二者都为零时也执行了if语句,环境ads1.2
请问怎么回事阿
图片是同一调试步骤时的截图
谢谢!

相关帖子

沙发
变色镜|  楼主 | 2008-1-11 12:31 | 只看该作者

补充,落了一图

还有一图

使用特权

评论回复
板凳
zlgarm| | 2008-1-11 13:18 | 只看该作者

re:变色镜

变色镜 您好!
   我们把您的提到的程序做了测试,结果没有发现您的说的问题。
   您可以打开它的反编译程序看看!问题估计出在编译上。
                                          By zlgarm_ljt

使用特权

评论回复
地板
linqing171| | 2008-1-11 13:35 | 只看该作者

给几个可能

先改成 if ((r485cmd!=0)&&(uping==0)) 习惯仅仅是。
在看看是不是编译器给编译错东西了。
再看看r485cmd是不是分配的地方在不存在的地址空间里。

如果是硬件仿真的话还有几个地方,软件模拟的话,不要用beta版本的编译器。

使用特权

评论回复
5
变色镜|  楼主 | 2008-1-11 14:07 | 只看该作者

多谢

多谢几位回答!
一开始我是在RAM里调试,这样写就就会有一个错误结果。后来直接写到flash里运行,那个错误结果没出现。是不是数据和代码有冲突了呢?

使用特权

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

本版积分规则

22

主题

44

帖子

0

粉丝