智能车制作

标题: IAR中使用结构体遇到的问题 [打印本页]

作者: 透过雨滴的光    时间: 2013-5-14 00:57
标题: IAR中使用结构体遇到的问题
void data_transform_in(struct Con_trol control_data,u8 *control_dat)
{

   control_data.duoji_pwm  =(u16)(control_dat[0]*256)+(u16)control_dat[1];
   control_data.D_p        =(u16)(control_dat[2]*256)+(u16)control_dat[3];
   control_data.D_d        =(u16)(control_dat[4]*256)+(u16)control_dat[5];
   control_data.dianji_pwm =(u16)(control_dat[6]*256)+(u16)control_dat[7];
   control_data.p          =(u16)(control_dat[8]*256)+(u16)control_dat[9];
   control_data.i          =(u16)(control_dat[10]*256)+(u16)control_dat[11];
   control_data.d          =(u16)(control_dat[12]*256)+(u16)control_dat[13];
   control_data.slope      =(u16)(control_dat[14]*256)+(u16)control_dat[15];
   control_data.curvature  =(u16)(control_dat[16]*256)+(u16)control_dat[17];
   control_data.diviation  =(u16)(control_dat[18]*256)+(u16)control_dat[19];
}
出现Warning[Pe550]: parameter "control_data" was set but never used  的问题
程序调试的时候只是进了函数,但是没有执行里面的函数就跳出来的  
哪位大神知道错在那啊
求解!!!!!!!!


作者: 野火    时间: 2013-5-14 08:09
你这个函数,仅仅对局部变量赋值,而没进行任何操作。

编译器对代码进行优化,你的函数相当于:
void data_transform_in(struct Con_trol control_data,u8 *control_dat)
{
}

所以跳进去后,马上跳出来
作者: 透过雨滴的光    时间: 2013-5-14 08:45
哦哦,问题已解决,但是还是没懂为什么一定要这样定义
我记得C里面的不必这样的
typedef  struct Con_trol
{
    u16 duoji_pwm;
    u16  D_p;              //舵机的P控制值
    u16  D_d;              //舵机的D控制值
    u16 dianji_pwm;      
    u16  p;                //电机的P控制值
    u16  i;                //电机的I控制值
    u16  d;                //电机的D控制值
    u16 slope;            //斜率
    u16 curvature;        //曲率
    u16  diviation;         //中心线偏差值
} Con_trol;
static Con_trol  control_data;

我这样定义的时候那函数就会出错
  struct Con_trol
{
    u16 duoji_pwm;
    u16  D_p;              //舵机的P控制值
    u16  D_d;              //舵机的D控制值
    u16 dianji_pwm;      
    u16  p;                //电机的P控制值
    u16  i;                //电机的I控制值
    u16  d;                //电机的D控制值
    u16 slope;            //斜率
    u16 curvature;        //曲率
    u16  diviation;         //中心线偏差值
} Contro_datal;




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2