打印
[DSP编程]

DSP程序中定义的数组总报错是怎么回事

[复制链接]
1012|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zhangchunbuaa 于 2016-3-30 11:32 编辑

float sina[30]={0.000000,0.104528,0.207911,0.309016,0.406737,
                                        0.500000,0.587785,0.669131,0.743145,0.809017,
                                        0.866025,0.913545,0.951057,0.978148,0.994522,
                                        1.000000,0.994522,0.978148,0.951057,0.913545,
                                        0.866025,0.809017,0.743145,0.669131,0.587785,
                                        0.500000, 0.406737,0.309016,0.207911,0.104528};
        float sinb[30]={0.866025,0.809017,0.743145,0.669131,0.587785,
                                        0.500000,0.406737,0.309016,0.207911,0.104528,
                                        0.000000,-0.104528,-0.207911,-0.309016,-0.406737,
                                        -0.500000,-0.587785,-0.669131,-0.743145,-0.809017,
                                        -0.866025,-0.913545,-0.951057,-0.978148,-0.994522,
                                        -1.000000,-0.994522,-0.978148,-0.951057,-0.913545};
我在CCS3.3源程序中定义了两个数组,但是总是报错,是怎么回事?
"SPWM2.c", line 70: error: declaration may not appear after executable statement in block
"SPWM2.c", line 76: error: declaration may not appear after executable statement in block

QQ截图20160330112722.png (16.6 KB )

QQ截图20160330112722.png

QQ截图20160330112800.png (2.81 KB )

QQ截图20160330112800.png

相关帖子

沙发
玄德| | 2016-3-30 11:41 | 只看该作者

必须先定义,再使用。
不能倒过来。

提示是这么说的。


使用特权

评论回复
板凳
JY-DX-JY| | 2016-3-30 11:52 | 只看该作者
前面好像有执行语句。。。。。。。。。。。。。。。。。。。。。。。。

使用特权

评论回复
地板
zhangchunbuaa|  楼主 | 2016-3-30 14:26 | 只看该作者
        后面的程序是这样的,应该怎么改呢?

while(1)
                  {
                  if((i>=0)&&(i<N/2))
                       {
                       EPwm1Regs.CMPA.half.CMPA =EPwm1Regs.TBPRD*((1.0+M*sina[i])/2.0);
                       EPwm2Regs.CMPA.half.CMPA =EPwm1Regs.TBPRD*((1.0+M*sinb[i])/2.0);  //更新比较寄存器2的值                                                                                                                                                                          
                       EPwm1Regs.CMPA.half.CMPA =EPwm1Regs.TBPRD*((1.0-M*(sina[i]+sinb[i]))/2.0);  //更新比较寄存器3的值
                       }
                if((i>=N/2)&&(i<N))
                       {
                       EPwm1Regs.CMPA.half.CMPA =EPwm1Regs.TBPRD*((1.0-M*sina[i-30])/2.0);
                       EPwm2Regs.CMPA.half.CMPA =EPwm1Regs.TBPRD*((1.0-M*sinb[i-30])/2.0);  //更新比较寄存器2的值                                                                                                                                                                          
                       EPwm1Regs.CMPA.half.CMPA =EPwm1Regs.TBPRD*((1.0+M*(sina[i-30]+sinb[i-30]))/2.0);  //更新比较寄存器3的值
                       }
                   i++;
                   if(i>=N)i=0;
                SPwmSetup();
                }

使用特权

评论回复
5
zhangchunbuaa|  楼主 | 2016-3-30 22:28 | 只看该作者
把数组定义在主函数外面就好了,已经解决了

使用特权

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

本版积分规则

4

主题

14

帖子

0

粉丝