[求助] 为什么这个for循环跑不出来了

远比天高   2016-10-9 11:10 楼主
程序始终在这个for循环里跑,这个for循环之前的变量赋值的语句也跑不进去,后面的也跑不进去 就在这个循环里跑,这是怎么回事啊?
Uint16 i;
float uaa[20],ubb[20],ucc[20];
前面的是他的变量定义。

for(i=0;i<=19;i++)
      {
   uaa[i]=0;
   ubb[i]=0;
   ucc[i]=0;
      }

回复评论 (16)

程序没下载对,不是最新的,实际跑的代码跟源文件对不上导致。
点赞  2016-10-9 11:15
建议仿真看下变量 i 的值
1084534438 欢迎交流  [加油,一切皆有可能]
点赞  2016-10-9 11:18
引用: RCSN 发表于 2016-10-9 11:18
建议仿真看下变量 i 的值

我看了下  始终是0怎么回事啊。。。
点赞  2016-10-9 11:28
引用: lcofjp 发表于 2016-10-9 11:15
程序没下载对,不是最新的,实际跑的代码跟源文件对不上导致。

下对了啊 我刚看了i值 始终是0啊
点赞  2016-10-9 11:29
Uint16改为unsigned char试试
1084534438 欢迎交流  [加油,一切皆有可能]
点赞  2016-10-9 11:30
不知道你用的是什么平台,如果51单片机的话内存都不够放这些变量的。。。你debug的时候没有看看i的值么,还要看看反汇编的语句吧、
亚里士缺德
点赞  2016-10-9 11:31
引用: RCSN 发表于 2016-10-9 11:30
Uint16改为unsigned char试试

还是不行啊。。。
点赞  2016-10-9 11:33
如果循环能执行,i就不可能一直为0,肯定是没执行i++操作,至于具体原因,要看汇编语句,如果汇编驴唇不对马嘴,那么还是指令与源代码不对应。
点赞  2016-10-9 11:38
第一:i 在定义那里初始化为0,即是Uint16 i=0;for(i=0;i<=19;i++)改为for(;i<=19;i++)。。但意思都一样
第二:单片机压根没在跑,供电不正常。
第三:内存不够。
1084534438 欢迎交流  [加油,一切皆有可能]
点赞  2016-10-9 11:38
可能DSP运行的根本就不是这段程序。

程序是不是优化过?
点赞  2016-10-9 20:39
你是用的什么编译器啊?
这个程序除了这几句还有没有其他的,一起发出来。
你的i是全局的还是局部变量啊。
点赞  2016-10-9 22:16
引用: jinyi7016 发表于 2016-10-9 22:16
你是用的什么编译器啊?
这个程序除了这几句还有没有其他的,一起发出来。
你的i是全局的还是局部变量啊 ...

已经解决了 把i定义成全局变量就好了。。。我也不晓得为什么。。。
点赞  2016-10-10 17:06
引用: RCSN 发表于 2016-10-9 11:38
第一:i 在定义那里初始化为0,即是Uint16 i=0;for(i=0;i

应该是内存不够了。。把i定义成全局变量就好了。。。我也不晓得为啥
点赞  2016-10-10 17:07
引用: lcofjp 发表于 2016-10-9 11:38
如果循环能执行,i就不可能一直为0,肯定是没执行i++操作,至于具体原因,要看汇编语句,如果汇编驴唇不对 ...

把i定义成全局变量就好了。。。我也不晓得为什么。。。求指导啊 是不是内存问题
点赞  2016-10-10 17:08
引用: 远比天高 发表于 2016-10-10 17:08
把i定义成全局变量就好了。。。我也不晓得为什么。。。求指导啊 是不是内存问题

这个需要你自己调试,别人帮不了忙,调试的时候看看汇编代码以及变量的地址,一目了然。
点赞  2016-10-10 17:33
这个问题有意思

建议把整个子函数的汇编部分拿出来分析下,应该可以学习到很多东西
要666
点赞  2016-10-10 22:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复