本帖最后由 qll 于 2014-4-16 11:32 编辑
得到mode的值:mode = value_temp[3]; 计算x、y、z轴数据 x_start = dToa(value_temp[0], 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;
}
|