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

[复制链接]
1339|4
 楼主| zhangchunbuaa 发表于 2016-3-30 11:29 | 显示全部楼层 |阅读模式
本帖最后由 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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
玄德 发表于 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();
                }
 楼主| zhangchunbuaa 发表于 2016-3-30 22:28 | 显示全部楼层
把数组定义在主函数外面就好了,已经解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部