[讨论] 求教:if条件满足,但是不能运行,为什么

songrock   2010-9-2 14:47 楼主
今天遇到一个问题,if判断,应该相等却不能执行。
程序如下:

.
.
.
char adFlag;
.
.
.
void main (void)
{
...

while(1)
{

if(1 == adFlag)
{
_DINT();

if( max(svm1) > THMOVE ) //对svm特征值判断,是为运动状态
{
MoveFlag1 = 1;
StillFlag1 = 0;
}
else
{
MoveFlag1 = 0;
StillFlag1 = 1;
}

if( max(svm2) > THMOVE )
.
.
.

后边修改过adFlag的值
if(100 == index)
{
index = 0;
adFlag = 1;

看watch window里adFlag也变为1了,但是if那句执行不下去,为什么?

回复评论 (4)

你看看是不是有中断啊,进去就没出来,所以不走主循环了
点赞  2010-9-2 17:11

回复 沙发 sjl2001 的帖子

有中断,但是已经返回了。就是卡在if那句那了
点赞  2010-9-2 20:49
到仿真那里看一下汇编代码。
if(1 == adFlag)
这样写可以吗??
如果换成:
if( adFlag ==1)
呢??结果会如何??

我也只是个新手,期待高手解答~~~~
点赞  2010-9-2 21:53

回复 4楼 huchuan987 的帖子

代码可以那样写地,编译也可通过,关键是adFlag,应是它的是,它永远等于零啦:D
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2010-9-6 08:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复