【求助】还是单片机浮点数运算产生0.NAN的问题 ,急
上次发帖 求助 ,IAR中watch中的变量值显示0.NaN是什么原因http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3369180&bbs_page_no=1&search_mode=3&search_text=jizzll&bbs_id=9999
后来加看门狗忽视了这个问题,现在发现这个问题还是比较严重的,所以重新描述一下问题的所在,求大家多多指点
程序中涉及到浮点数运算,而且公式1比较简单,公式2比较复杂。公式中涉及到4个输入变量(传感器获得),30个浮点数参数(开机后从E2读出存入全局变量数组)
开机的时候,读外部E2,然后把参数存入几个数组(约30个浮点数)
进入while循环
{
传感器获取4个变量值,
4个变量值代入公式1(不怎么复杂)
4个变量代入公式2(较复杂)
其他操作
}
运算公式1是不存在问题的,关键是偶尔运算公式2会出现结果为0.NAN(在4个输入变量几乎不变的情况下),整个程序运行一遍约花300mS,出现问题的时间长短不定,有时候几分钟,有时候几个小时都是正常的
求大家多指点指点,问题可能出现在哪里 可能原因:
因为采集数据出错导致
1.超出浮点运算范围,数值太大。
2.运算中被0除
3.开方或log运算中出现负数
建议对采集的数据进行校验。 可能原因:
因为采集数据出错导致
1.超出浮点运算范围,数值太大。
2.运算中被0除
3.开方或log运算中出现负数
建议对采集的数据进行校验。
--------------------------------------------------------------------------
运算出现错误的时候,我查看了4个传感器变量,没有发现问题的 帖出公式看看。 能否给一个邮箱?公司的东西不敢直接贴在网上的。
兄弟见谅啊 直接用单片机做浮点运算?一般都是变成定点之后在运算。比如通过移位或者扩大倍数等等,反正使用浮点运算速度慢,出错率高,仅仅是精度比定点要好。不过这么高的精度一般是不需要的。 用来做流量计方面的,浮点数的参数太多,移位等方式太烦琐了 你邮箱多少啊楼主,做什么样的流量计?很关注,麻烦回复。lankuaker@163.com
页:
[1]