重力传感器计算数值的代码问题
本帖最后由 qll 于 2014-4-16 11:32 编辑得到mode的值:mode = value_temp;计算x、y、z轴数据x_start = dToa(value_temp, mode);y_start = dToa(value_temp[1], mode);z_start = dToa(value_temp[2], mode);
下面的这个函数是采用什么计算原理实现的?
float Thread::dToa(unsigned short dat, unsigned char mode)
{
float result = 0.0;
if ((dat & 0x200) != 0)
{ dat = ((~dat) + 1) & 0x1ff;
result = -(9.8 * (float) (mode + 1)) * 2 * dat / 512.0;
}
else
{
dat = dat & 0x1ff;
result = (9.8 * (float) (mode + 1)) * dat * 2 / 512.0;
}
return result;
}
谁做过重力传感器或者懂的,解释一下上面的代码》 主要是 result = -(9.8 * (float) (mode + 1)) * 2 * dat / 512.0; 用的什么计算公式? 哪位大神来回答一下。
页:
[1]