其他分享
首页 > 其他分享> > 解决陀螺仪代码中float精度不够的问题

解决陀螺仪代码中float精度不够的问题

作者:互联网

问题:

陀螺仪通电后长时间不动会发生如下变化:

①Vx、Vy的数量级达到10^38,V的数量级达到10^19

②X_del和Y_del一直等于0

③将KAL_filter函数的第二个入口参数直接改成0,发现对应的Vx/Vy/Vw变成0

 

解决:

多次debug并修改代码测试后发现OSTime增加到一定值(0x02000000)后ticks值可能溢出(float精度不够),导致有些位数读取不了。将强制类型转化的操作提前一步即可解决该问题。

修改前代码:

修改后代码:

 

待解决:

X_del变量等于0代入KAL_filter函数与数值0直接代入该函数得到的结果为什么不同?

标签:10,陀螺仪,代码,float,KAL,filter,del,精度
来源: https://blog.csdn.net/m0_47700906/article/details/120809865