麦步社区-论坛

标题: 使用math.h中遇到的一些问题 [打印本页]

作者: diablozhu    时间: 2016-1-5 15:30
标题: 使用math.h中遇到的一些问题
由于麦步的海拔始终存在问题,所以重新推导了一下公式,考虑了温度修正。但是在包含了math.h以后
加入了如下代码,就出问题了

int8_t iok;
float pressure;
float tempreture;
iok = maibu_get_pressure(&pressure);
maibu_get_temperature(&tempreture);
if(iok==0){
  //根据温度修正气压计算高度
  float temp1 = (log(pressure)+log(100)-11.526)*100;
  float temp2 = temp1*(273.15+tempreture)/3.41825;
  sprintf(str,"%.1fm",temp2);
}

相同代码在c中是能通过的,但是加入表盘后,安装到手表后表盘就会自动消失,很让人头疼
现在已经不敢用其他函数了

作者: diablozhu    时间: 2016-1-6 11:52
受不了了,模拟器里面跑的好好的,放表上就完全不行了
作者: 詹姆斯大胖    时间: 2016-1-6 12:19
log函数还没有加到SDK里边,自己实现个log或者等以后系统开放也可以
作者: diablozhu    时间: 2016-1-6 14:26
表盘中好像也没法使用除法,应用中我看是没问题的
作者: 詹姆斯大胖    时间: 2016-1-6 15:05
不会啊,整数和浮点的出发应该都是可以的
作者: diablozhu    时间: 2016-1-6 15:30
我再用别的例子试试,模拟器里面确实没问题
传到表上我的out.mai就会自动消失,不用除法没事,不知道是什么机理?
作者: 詹姆斯大胖    时间: 2016-1-6 15:44
diablozhu 发表于 2016-1-6 15:30
我再用别的例子试试,模拟器里面确实没问题
传到表上我的out.mai就会自动消失,不用除法没事,不知道是什么 ...

有些C库的函数,比如log ,ln之类的,模拟器里边是使用PC机上的C库去编译的。但是我们的手表里边可能没有把这些函数开放,所以当你到手表上安装的时候,就会出现模拟器明明可以,但是手表装不上的情况。这个以后模拟器会去检查你使用的函数手表里有没有,但是现在暂时没有检查。
作者: diablozhu    时间: 2016-1-6 15:58
确实在看本地的math.h是全的,模拟器应该调用的本地库,所以没有问题
希望下次模拟器可以改进一下。




欢迎光临 麦步社区-论坛 (http://bbs.maibu.cc/) Powered by Discuz! X3.2