大家好、
我将演示代码"FR6043_USSSWLib_TEMPLATE_example"用于气体计量设置。
由于我想通过 i2c 传输测量结果,我想知道如何将结果从 fixedResults 解码为 Float 值。
我想答案在"ussWsLibAlgorithm.c"中使用的"USS_getResultsInFloat ()"中、但我找不到该函数的代码、因为它定义为 extern、所以我搜索了库提供的所有文件。
如果您能为我提供函数的代码、我将不胜感激。
谢谢、此致
卢卡斯
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.
大家好、
我将演示代码"FR6043_USSSWLib_TEMPLATE_example"用于气体计量设置。
由于我想通过 i2c 传输测量结果,我想知道如何将结果从 fixedResults 解码为 Float 值。
我想答案在"ussWsLibAlgorithm.c"中使用的"USS_getResultsInFloat ()"中、但我找不到该函数的代码、因为它定义为 extern、所以我搜索了库提供的所有文件。
如果您能为我提供函数的代码、我将不胜感激。
谢谢、此致
卢卡斯
尊敬的 Lukas:
我认为您要查找的函数已在我们的预编译 USS 库中定义、因此您将无法在 SDK 中找到它的定义。 我已尝试在我们的 SDK 中搜索、但没有为您找到定义。
但是、查看 USSSWLib 模板示例代码、似乎它已经使用 USS 算法的浮点版本、将值分配给 USS_USS 算法结果结构的浮点版本 Algorithms_Results algResults。 我希望当您运行模板示例代码时、结果将已经是浮点格式、前提是您没有进行更改。 您可以确认您的模板示例使用上述结果结构和该算法来生成结果: USS_runAlgorithms()吗?
你是对的,Inital 模板代码确实给了我一个浮点的结果,但是我想实际使用 USS_runAlgorithms()内的 fixedResults,因为我可以通过 i2c 将这些结果更简单地传输到我的外部电路。 但我需要重新计算整个系统中芯片外的浮子、我想知道您如何从 fixedResults 返回浮子、以便我可以自己执行该操作。 您可能会向我提供所涉及的数学知识吗? 或者、告诉我测量的 ToF 如何被分隔为4个字节的数据?
我明白了。 感谢您在此确认并介绍了此用例。
我认为这里有两个选项。 我不知道整个系统中使用的是哪些器件、但您应立即了解的选项是安装 MSP-IQMATHLIB、它定义了用于将 IQMath 值转换为浮点值的函数。 您可以在 IQMath 用户指南的第4.2节中阅读有关这些函数的更多信息。 下载中将具有一个预编译的库、您可以在代码项目中链接该库。
您的另一个选项需要更多一点编码、但您可能会发现它更简单。 您可以查看上面链接的 IQMath 用户指南的第2.2节、了解 IQMath 数字的格式设置、其中提供了示例、我认为这是一个相对简单的转换。 另外看起来上述链接仅适用于 MSP430微控制器、因此假设您要转换为不同的器件、这可能正是合适的方法。
我假定 USS_getResultsInFloat()函数仅使用 IQMath 库转换从 IQ16转到 USS 代码中浮点。