主题中讨论的其他器件:MSP-IQMATHLIB、 MSP430WARE、 MSP430G2553
工具/软件:Code Composer Studio
我正在寻找基于 QMRath/IQMath 的有效解决方案或示例代码、其中我有16位 Accel 数据(如有必要、可缩减为12位 Accel 数据)、其中计算总加速度(每个 X、Y、Z 的平方、然后求和、最后求和的 sqrt)。 我还对如何使用 atan2进行倾斜度计算感兴趣。
R.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
我正在寻找基于 QMRath/IQMath 的有效解决方案或示例代码、其中我有16位 Accel 数据(如有必要、可缩减为12位 Accel 数据)、其中计算总加速度(每个 X、Y、Z 的平方、然后求和、最后求和的 sqrt)。 我还对如何使用 atan2进行倾斜度计算感兴趣。
R.
您好 Richard、
您是否了解过 MSP430方向跟踪器 TI 设计? 此 TI 参考设计展示了如何使用 IQmath 库与加速计组合来计算加速度幅度、检测器件何时处于自由落体状态、使用 atan2计算倾角(间距和侧倾)以及使用引力作为参考来校准加速计。
该设计使用 MSP430G2553和软件 Qmath/IQmath 库、但相同的例程可用于任何器件和库版本。
此致、
Brent Peterson
您可以将测量值转换为 Q12、方法是将整数测量值除以刻度(在本例中为10、000)。 由于测量为16位、我们将使用 IQmath 除法函数、然后转换到 Q12、以获得范围为+/-8.0G 的 Q12格式的最终结果。 Q12结果转换为浮点值以验证结果、并与预期值相等(0.5G = 5000mG/10)。
_Q12结果; int32_t 测量= 5000; 结果=(_Q12)_IQ12div (测量值、10000); volatile float resultFloat =_Q12toF (结果);
此致、
Brent Peterson
是否有通过网站或 Android 应用的 QMath 或 IQMath 计算器?
涵盖此主题的最佳书籍或材料是什么?
我发现分频器是3.45454号、因此我可以用1/3.45454更好地处理 IQ12mpy、但我得到了
Q12 (1.00024)、通过 IQ12div (数据、3.45454)
Q12 (0.999756)通过 IQ12mpy (数据、1/345454)、它说 PM 第6.1节手册、 QMath 的速度提高了两倍、IQMath 的速度提高了10倍(哇!)。
手册记录了乘法时的14位精度有16位精度、想知道这是否与此相关?
一个小错误、但好奇那里发生了什么。