打印

调试程序出错

[复制链接]
988|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxmzzr|  楼主 | 2014-11-27 10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调试程序时,出现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;
}

相关帖子

沙发
拿起书本| | 2014-11-28 10:31 | 只看该作者
你这是哪一行报错啊?adc0数组咋定义的?

使用特权

评论回复
板凳
pallee| | 2014-11-28 19:47 | 只看该作者
这个提示的意思大概是一个声明语句,要放在一个函数的开头,没有写执行语句之前。否则就会出现这个错误。

我觉得可能是你的Error = 0等迭代语句的定义是否应该放在最前面?

仅是猜想。

使用特权

评论回复
地板
zhangmangui| | 2014-11-29 16:49 | 只看该作者
楼上说的有道理   

使用特权

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

本版积分规则

460

主题

2188

帖子

12

粉丝