智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2043|回复: 2
打印 上一主题 下一主题

IAR中使用结构体遇到的问题

[复制链接]

4

主题

70

帖子

0

精华

高级会员

Rank: 4

积分
978
威望
549
贡献
283
兑换币
165
注册时间
2012-12-14
在线时间
73 小时
跳转到指定楼层
1#
发表于 2013-5-14 00:57:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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  的问题
程序调试的时候只是进了函数,但是没有执行里面的函数就跳出来的  
哪位大神知道错在那啊
求解!!!!!!!!

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
2#
发表于 2013-5-14 08:09:05 | 只看该作者
你这个函数,仅仅对局部变量赋值,而没进行任何操作。

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

所以跳进去后,马上跳出来
回复 支持 反对

使用道具 举报

4

主题

70

帖子

0

精华

高级会员

Rank: 4

积分
978
威望
549
贡献
283
兑换币
165
注册时间
2012-12-14
在线时间
73 小时
3#
 楼主| 发表于 2013-5-14 08:45:03 | 只看该作者
哦哦,问题已解决,但是还是没懂为什么一定要这样定义
我记得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;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 12:33 , Processed in 0.042372 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表