[求助] 关于IAR variable "Fx" was set but never

爱就一个字   2014-5-5 23:05 楼主
我用的是iar for msp430v5.5.02这个版本#include
#include "Config.h"                 
void main(void)
{  int  Fx,F;
  int k3=18,k2=-40,k1=100,x=3000,y=2,d_x=10;//
  while(1)
{
    Fx=(-k1*y) -(k2*d_x);
    F=-k1*y;
    F=k3+x;   
}
}  这个简单的程序出现以下的警告
Warning[Pe550]: variable "Fx" was set but never



我查阅相关资料 用 volatile int  Fx,F; 警告消失了,然后我用软件仿真 结果无数值,看截图


然后我定义了 Fx 和 F为全局变量,结果就可以了,有了相应的数值,这?????
我新接触IAR,请教大家,有的就可以定义为局部变量,有的必须是全局变量???
各位高手有没有解决的办法????
  • 360软件小助手截图20140505230137.png

回复评论 (9)

没使用的局部变量会被编译器直接优化掉,所以看不见是非常正常的。
点赞  2014-5-5 23:11
看你优化等级是高还是低
点赞  2014-5-6 08:19
引用: lcofjp 发表于 2014-5-5 23:11
没使用的局部变量会被编译器直接优化掉,所以看不见是非常正常的。

恩恩 谢谢!是这个样子啊,那可不可设置一下,编译器不优化掉局部变量
点赞  2014-5-6 08:50
引用: 馨曦 发表于 2014-5-6 08:19
看你优化等级是高还是低

谢谢!请问优化等级可以设置吗??
点赞  2014-5-6 08:51
引用: 爱就一个字 发表于 2014-5-6 08:50
恩恩 谢谢!是这个样子啊,那可不可设置一下,编译器不优化掉局部变量

好像更改优化设置也是没有作用的,所以你想观察的变量在调试期间可以设置为全局变量或者静态变量。
点赞  2014-5-6 08:59
引用: lcofjp 发表于 2014-5-6 08:59
好像更改优化设置也是没有作用的,所以你想观察的变量在调试期间可以设置为全局变量或者静态变量。

恩恩!再次谢谢! 我试试看,因为我主循环里要做一个有点复杂的算法,我得一步一步调试一下。
点赞  2014-5-6 09:05
引用: lcofjp 发表于 2014-5-6 08:59
好像更改优化设置也是没有作用的,所以你想观察的变量在调试期间可以设置为全局变量或者静态变量。

在问一下,处理数据时float型可以设置要保留小数点后几位有效数字吗?? 比如说 保留两位 2.33,我怕小数点后位数太多影响速度。。

点赞  2014-5-6 09:59
引用: 爱就一个字 发表于 2014-5-6 09:59
在问一下,处理数据时float型可以设置要保留小数点后几位有效数字吗?? 比如说 保留两位 2.33,我怕小数 ...

浮点数的表示法只有一种,不能定制,所以不能像你说的那样只保留两位。如果怕影响速度的话,是不是可以考虑使用整形来计算。
点赞  2014-5-6 10:22
引用: lcofjp 发表于 2014-5-6 10:22
浮点数的表示法只有一种,不能定制,所以不能像你说的那样只保留两位。如果怕影响速度的话,是不是可以考 ...

恩恩,只能这样了,我强制int 丢一些精确度吧 非常感谢
点赞  2014-5-7 22:39
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复