程序始终在这个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;
}
程序没下载对,不是最新的,实际跑的代码跟源文件对不上导致。
建议仿真看下变量 i 的值
1084534438 欢迎交流 [加油,一切皆有可能]
Uint16改为unsigned char试试
1084534438 欢迎交流 [加油,一切皆有可能]
不知道你用的是什么平台,如果51单片机的话内存都不够放这些变量的。。。你debug的时候没有看看i的值么,还要看看反汇编的语句吧、
如果循环能执行,i就不可能一直为0,肯定是没执行i++操作,至于具体原因,要看汇编语句,如果汇编驴唇不对马嘴,那么还是指令与源代码不对应。
第一:i 在定义那里初始化为0,即是Uint16 i=0;for(i=0;i<=19;i++)改为for(;i<=19;i++)。。但意思都一样
第二:单片机压根没在跑,供电不正常。
第三:内存不够。
1084534438 欢迎交流 [加油,一切皆有可能]
可能DSP运行的根本就不是这段程序。
程序是不是优化过?
你是用的什么编译器啊?
这个程序除了这几句还有没有其他的,一起发出来。
你的i是全局的还是局部变量啊。
已经解决了 把i定义成全局变量就好了。。。我也不晓得为什么。。。
应该是内存不够了。。把i定义成全局变量就好了。。。我也不晓得为啥
把i定义成全局变量就好了。。。我也不晓得为什么。。。求指导啊 是不是内存问题
这个需要你自己调试,别人帮不了忙,调试的时候看看汇编代码以及变量的地址,一目了然。
这个问题有意思
建议把整个子函数的汇编部分拿出来分析下,应该可以学习到很多东西