打印

调试程序时,出现error

[复制链接]
833|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bbapple|  楼主 | 2016-4-13 20:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调试程序时,出现error:declaration may not appear after executable statement in block,是哪里出了错,大家遇到过这类问题吗?

上代码:void buck_mode(void)
{
     int16 count0;
     int32 SampleTable_sum1 = 0x0;
     int16 avg = 0x0;
     for(count0 = 0; count0<100; count0++)
              SampleTable_sum1 = SampleTable_sum1+Adc0_array_VL[count0];

     
     avg = SampleTable_sum1/100;
     Error =Volt_LOW_REF-avg;

U_error = A*Error+B*Error_1+C*Error_2;
duty = Kpwm*U_error;
     
     Duty_cycle = Duty_cycle_1 + duty;

   
      if(Duty_cycle>2700)
      Duty_cycle=2700;
   
      if(Duty_cycle<0)
      Duty_cycle=0;
   
      
   
       if(size1 > 1000)
      size1 = 0;
   if(size2 > 1000)
      size2 = 0;
       buff[size1++] = duty;
   buff1[size2++] = U_error;
   
      
   Duty_cycle_1 = Duty_cycle;

   Error_2 = Error_1;
   Error_1 = Error;
   Error = 0;

  
       EALLOW;
   EPwm1Regs.CMPA.half.CMPA = 0;
       EPwm4Regs.CMPA.half.CMPA = Duty_cycle;           
       EDIS;
}
沙发
feiqi1| | 2016-4-13 21:44 | 只看该作者
EALLOW;
   EPwm1Regs.CMPA.half.CMPA = 0;
       EPwm4Regs.CMPA.half.CMPA = Duty_cycle;           
       EDIS;
这几行代码看不懂什么意思呢?

使用特权

评论回复
板凳
androidbus| | 2016-4-13 21:49 | 只看该作者
你这是哪一行报错啊?看的不是很明白呢!!

使用特权

评论回复
地板
litengg| | 2016-4-13 21:56 | 只看该作者
我觉得可能是你的Error = 0等迭代语句的定义是否应该放在最前面?

使用特权

评论回复
5
qiangweii| | 2016-4-13 22:00 | 只看该作者
进来看看,个人觉得楼上说的有道理   。。

使用特权

评论回复
6
xia00| | 2016-4-13 22:06 | 只看该作者
不知道adc0数组咋定义的?

使用特权

评论回复
7
boy1990| | 2016-4-13 22:14 | 只看该作者
SampleTable_sum1 = SampleTable_sum1+Adc0_array_VL[count0]; 干嘛用的啊?表示还没遇到过类似问题。

使用特权

评论回复
8
Edisons| | 2016-4-18 22:20 | 只看该作者
看看,不知道楼主这段程序干嘛用的呢?

使用特权

评论回复
9
laozhongyi| | 2016-4-18 22:27 | 只看该作者
void buck_mode(void)  这是 buck电路程序吗??

使用特权

评论回复
10
bbapple|  楼主 | 2016-5-8 16:57 | 只看该作者
feiqi1 发表于 2016-4-13 21:44
EALLOW;
   EPwm1Regs.CMPA.half.CMPA = 0;
       EPwm4Regs.CMPA.half.CMPA = Duty_cycle;           

这 是一段脉冲的循环函数、

使用特权

评论回复
11
bbapple|  楼主 | 2016-5-8 16:58 | 只看该作者
androidbus 发表于 2016-4-13 21:49
你这是哪一行报错啊?看的不是很明白呢!!

不好意思。具体我也不是 很清楚 啊。

使用特权

评论回复
12
bbapple|  楼主 | 2016-5-8 16:59 | 只看该作者
litengg 发表于 2016-4-13 21:56
我觉得可能是你的Error = 0等迭代语句的定义是否应该放在最前面?

有这个可能,多谢说明。

使用特权

评论回复
13
bbapple|  楼主 | 2016-5-8 17:00 | 只看该作者
boy1990 发表于 2016-4-13 22:14
SampleTable_sum1 = SampleTable_sum1+Adc0_array_VL[count0]; 干嘛用的啊?表示还没遇到过类似问题。 ...

就是一个累计循环的吧!!!

使用特权

评论回复
14
bbapple|  楼主 | 2016-5-8 17:01 | 只看该作者
Edisons 发表于 2016-4-18 22:20
看看,不知道楼主这段程序干嘛用的呢?

堆栈函数啊

使用特权

评论回复
15
litengg| | 2016-5-8 17:14 | 只看该作者
bbapple 发表于 2016-5-8 16:59
有这个可能,多谢说明。

赶紧试试吧, 这个也不见得就是这个原因、

使用特权

评论回复
16
boy1990| | 2016-5-14 09:21 | 只看该作者
bbapple 发表于 2016-5-8 17:00
就是一个累计循环的吧!!!

好的,多谢。

使用特权

评论回复
17
feiqi1| | 2016-5-16 10:30 | 只看该作者
bbapple 发表于 2016-5-8 16:57
这 是一段脉冲的循环函数、

好的,我看看,这个还真的不是很好理解啊

使用特权

评论回复
18
androidbus| | 2016-5-16 10:57 | 只看该作者
bbapple 发表于 2016-5-8 16:58
不好意思。具体我也不是 很清楚 啊。

好吧,建议楼主自己多深入了解一下,或许问题很快就找到了。

使用特权

评论回复
19
wanglaojii| | 2016-5-16 20:56 | 只看该作者
Error_2 = Error_1;
   Error_1 = Error;
   Error = 0;
这里的  Error = 0; 不是特别明白是想说什么?

使用特权

评论回复
20
bbapple|  楼主 | 2016-5-19 18:39 | 只看该作者
wanglaojii 发表于 2016-5-16 20:56
Error_2 = Error_1;
   Error_1 = Error;
   Error = 0;

这不就是简单的赋值吗?不知道您想问的是什么?

使用特权

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

本版积分规则

293

主题

1811

帖子

1

粉丝