首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

在没乘法器的单片机上实现指数运算

2013-08-01 
在没有乘法器的单片机上实现指数运算这个是在写BMP180的时候算出某点的大气压根据大气压我需要算出高度H

在没有乘法器的单片机上实现指数运算
这个是在写BMP180的时候算出某点的大气压  根据大气压我需要算出高度

H = 44330*(1- (P/p.)^(1/5.225));

其中 p. = 101325 标准大气压
H 是我要求的高度
p 是我算出来的大气压 范围在 (30000---110000);


其精度要达到1m 求高手指导
指数????乘法器可以自己写
[解决办法]
用单片机做指数运算还是很麻烦的,何况你这还是<1的非整数指数运算,不过如果你的存储空间够的话,似乎可以想点其他办法

因为你求高度,精度1M以内,我没算你的高度范围,估计总不会超过几万米吧,你可以再计算机上计算出上述曲线,然后每隔1m取一个p值,将p和高度对应存一个表,放单片机里,几万个点的数据,几十K的存储空间而已,单片机不够,随便加个SPI-FLASH就可以了。

计算的时候,算出你采样的值在哪两个点范围内,然后这两个点拉直线,求你的p的值,精度肯定是<1米的
[解决办法]
其实,连插值都可以省去。

先确定你的高度允许精度。比如说 0.5 米。

公式变换一下,变成从高度计算气压。

从你测量的可能最小值起,步进 0.5 米,直至可能最大值,分别求出对应气压。

查表时,找到大于等于的第一个气压值,对应的高度误差不超过 0.5 米。

热点排行