bbslhb 发表于 2017-1-10 20:02:44

这个加速度计是12bit的。这12bit的数据放在16bit的寄存器里面,左对齐的。
真实值应该是读到的16bit的数据再右移4位才对。
代码里只右移了3位,说明得到的这个数值是真实值的两倍。
置于为啥是3不是4,可能人家要的是2倍而非原始值吧。

zbber 发表于 2017-1-11 08:44:54

这个算法有搞清楚吗?有没有源码贴一下,想请教一下,非常感谢

斜阳__ 发表于 2017-1-11 09:14:42

看手册。有几种可能:
1:数据存储在高位,且未用满。需要将数据右移;
2:数据是整字节的,通过右移可以简单的滤除抖动:

cxy 发表于 2017-3-24 13:16:11

精度吧你要看你的那个调用这个参数的函数原型。估计是精度太高了

cxy 发表于 2017-3-24 17:42:26

因为要对齐,位数不够补零了MD搞了半天总于好了

斜阳__ 发表于 2017-3-24 21:15:46

计步算法不需要很高的精度。直接把低位去掉可以当作是一种滤波。

yuyuheqiu 发表于 2017-3-28 11:07:42

这个算法很好,其实Lis3DH数据为12bits,存储在16bits的内存中,所以要读取到每个轴的数据,应该右移4bit,又因为配置的量程为2g,所以为了降低在接下来的计算中乘以2g,所以只移动3bit,相当于乘以2了,这样简化计算,节省电量

起初友人 发表于 2019-12-2 17:04:53

因为数据是12位有效左对齐的,应该移4位才对。
页: 1 [2]
查看完整版本: ST的LIS3DH有谁用过吗?基于它的计步算法有人懂吗?