解决陀螺仪代码中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