shaloumisha 发表于 2012-5-30 22:30:54

51单片机里面的for循环出现问题,提前跳出for循环

我写了一个单片机程序,其中for循环如下
for(i=0;i<32766;i++)
      if(DATA==0)   break;
但是i变量还没有到32766就跳出循环了,此时DATA还是1的,根本没有满足条件,而且跳出for循环之后后面的语句都不执行了,直接跳出此for循环所在的子函数,回到主函数,很懵啊,没明白怎么回事

zhyong319 发表于 2012-5-30 22:38:15

不懂,帮顶

dzymushi 发表于 2012-5-30 22:50:36

你i定义的是8位的还是16位的还是32的啊、

xiaoziwen 发表于 2012-5-30 22:57:15

不知道 建议加上{} 在一个 这个函数是啥啊

BXAK 发表于 2012-5-31 00:13:02

{:sweat:}没头没尾的

hhxb 发表于 2012-5-31 00:28:03

估计是溢出了

ali1019 发表于 2012-5-31 10:17:42

Data=0 , 跳出后 Data又被改成 1

xuanke 发表于 2012-5-31 10:18:11

数据类型定义的问题,应该是溢出了

shaloumisha 发表于 2012-5-31 12:14:03

dzymushi 发表于 2012-5-30 22:50 static/image/common/back.gif
你i定义的是8位的还是16位的还是32的啊、

定义的INT类型

shaloumisha 发表于 2012-5-31 12:14:43

ali1019 发表于 2012-5-31 10:17 static/image/common/back.gif
Data=0 , 跳出后 Data又被改成 1

DATA从来都没有等于0过 我观察到的哈

shaloumisha 发表于 2012-5-31 12:16:16

jswd0810 发表于 2012-5-31 10:14 static/image/common/back.gif
建议你看看编译出来的汇编程序,可能是被keil优化掉了,我遇见过好几次

开始我也怀疑是这个问题 我把优化级别设置成很低了 还是有问题

shaloumisha 发表于 2012-5-31 12:16:53

我调试的时候发现根本就没有溢出有时候30就跳出循环了 很奇怪的现象

BXAK 发表于 2012-5-31 12:27:07

shaloumisha 发表于 2012-5-31 12:16 static/image/common/back.gif
我调试的时候发现根本就没有溢出有时候30就跳出循环了 很奇怪的现象

如果可以,你把工程上传让大家试一试

shaloumisha 发表于 2012-5-31 14:02:46

是个测量温湿度的程序

dzymushi 发表于 2012-5-31 14:40:27

shaloumisha 发表于 2012-5-31 12:14 static/image/common/back.gif
定义的INT类型

看看是不是看门狗什么的复位了

shaloumisha 发表于 2012-5-31 15:34:50

dzymushi 发表于 2012-5-31 14:40 static/image/common/back.gif
看看是不是看门狗什么的复位了

我觉得我应该跟大家道个歉    我程序一开始就没有写看门狗复位忘了呜呜、、、、谢谢提醒啊

snwuzhisheng 发表于 2012-5-31 16:37:47

类型对不对 char 还是int
页: [1]
查看完整版本: 51单片机里面的for循环出现问题,提前跳出for循环