打印

关于pic仿真对浮点数的监测

[复制链接]
2731|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qe123|  楼主 | 2009-8-6 22:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在用pic做东西,里面用到了浮点数
     float  abc;
     程序里计算abc = 1.0/10;
     当我仿真到abc时,我停下看abc的值,竟然是用IEEE floating 显示为5.675434e-039,用十进制数显示是4050125,很怪异,我还是不相信,我在初始化中直接给abc初始值为0.1,但显示的值仍为前面所述的一样,不知为什么,请各位大虾帮忙!
沙发
madboy21| | 2009-8-6 22:56 | 只看该作者
还有这回事?我也想知道什么原因~~~~~

使用特权

评论回复
板凳
qe123|  楼主 | 2009-8-6 22:58 | 只看该作者
这个问题我已经弄几天了,真是郁闷!

使用特权

评论回复
地板
madboy21| | 2009-8-6 23:06 | 只看该作者
很不习惯~~~~
楼主怎么知道有人回你的贴了?如果我自己不进来看,都不知道会有新的回复。

使用特权

评论回复
5
qe123|  楼主 | 2009-8-6 23:07 | 只看该作者
我这问题挺急得,得频率快的看看有没有人回帖呀!

使用特权

评论回复
6
qe123|  楼主 | 2009-8-6 23:08 | 只看该作者
这个问题太急人了,这弄不好往下的或都会受影响!

使用特权

评论回复
7
tdh03z| | 2009-8-7 00:19 | 只看该作者
在变量观察窗口右键点击需要查看的变量,在弹出菜单中选properties(最底一个菜单),在弹出的窗口中更改size为24位,就可以看到浮点数了。

PIC为了提高浮点数运算速度,少用了1个字节来表示浮点数。

使用特权

评论回复
8
qe123|  楼主 | 2009-8-7 08:44 | 只看该作者
谢谢各位了!

使用特权

评论回复
9
madboy21| | 2009-8-7 09:33 | 只看该作者
这个论坛真让我晕!!!

使用特权

评论回复
10
madboy21| | 2009-8-7 09:35 | 只看该作者
昨天回贴时提示一个小时内不能回超过五贴~~~~~
还有就是没有任何提示信息,我都搞不明白为什么这里还是有那么多人。

按照7楼说的搞定没?

使用特权

评论回复
11
auzxj| | 2009-8-7 10:10 | 只看该作者
10# madboy21
很多新ID过来放广告,这是为了防止二姨家被广告占领,你过几天成为正式会员就没有限制了

使用特权

评论回复
12
qe123|  楼主 | 2009-8-7 11:08 | 只看该作者
搞定了,但是我还有个问题那就是我想把一个浮点数存在数组里,比如说浮点数为0.1450004580,把它存在transbuff[19],transbuff[20],transbuff[21],怎么存,可以把它放大多少倍完处理在存,但如果这个浮点数可能是100.6432648或1000.837498或10000.47598475等等,也就是说这个浮点数不确定,应该怎么来存在着24位中呢 ?

使用特权

评论回复
13
qe123|  楼主 | 2009-8-7 19:35 | 只看该作者
好像没有太多人关注啊

使用特权

评论回复
14
tdh03z| | 2009-8-7 19:47 | 只看该作者
//-----公用体变量定义------------------
union union_fot  //定义公用体,保存浮点数
{
        unsigned char result_uchr[4];
        float result_fot;
};
union union_fot g_fot_da;

g_fot_da.result_fot = 0.123456;
如果要存储到EEPROM中,EEPROM地址1中 = g_fot_da.result_uchr[0];
                                     EEPROM地址2中 = g_fot_da.result_uchr[1];
                                     EEPROM地址3中 = g_fot_da.result_uchr[2];
                                     EEPROM地址4中 = g_fot_da.result_uchr[3];
注意大小端,上面只是表示了下处理的方式,但一定是正确的,有个项目我是利用此种方式进行的浮点数存储,并发送到PC上,通过PC再还原为浮点数。也许对于PIC用3个字节表示浮点数理解不是很正确,但按照上面描述的方法你可以验证下PIC对于浮点数的存储到底是啥样的。

使用特权

评论回复
15
qe123|  楼主 | 2009-8-7 23:44 | 只看该作者
谢谢 tdh03z,先收下明天实验下!

使用特权

评论回复
16
qe123|  楼主 | 2009-8-8 23:31 | 只看该作者
谢谢 tdh03z,很受启发!

使用特权

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

本版积分规则

82

主题

623

帖子

3

粉丝