智能车制作
标题:
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