真实值应该是读到的16bit的数据再右移4位才对。
代码里只右移了3位,说明得到的这个数值是真实值的两倍。
置于为啥是3不是4,可能人家要的是2倍而非原始值吧。 这个算法有搞清楚吗?有没有源码贴一下,想请教一下,非常感谢 看手册。有几种可能:
1:数据存储在高位,且未用满。需要将数据右移;
2:数据是整字节的,通过右移可以简单的滤除抖动: 精度吧你要看你的那个调用这个参数的函数原型。估计是精度太高了 因为要对齐,位数不够补零了MD搞了半天总于好了 计步算法不需要很高的精度。直接把低位去掉可以当作是一种滤波。 这个算法很好,其实Lis3DH数据为12bits,存储在16bits的内存中,所以要读取到每个轴的数据,应该右移4bit,又因为配置的量程为2g,所以为了降低在接下来的计算中乘以2g,所以只移动3bit,相当于乘以2了,这样简化计算,节省电量 因为数据是12位有效左对齐的,应该移4位才对。
页:
1
[2]