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.

[参考译文] TMS320F280023C:IQ 格式

Guru**** 2387830 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1187694/tms320f280023c-iq-format

器件型号:TMS320F280023C

各位专家:

我们需要您的帮助。  

我们的客户希望将12位 ADC 计数(4096)转换为 IQ24格式。 那么、如果我们写入(ADCcounts<<12)或写入_IQ12toIQ (ADCcounts)、这两个运算是否会得出相同的结果?

此致、

Jonathan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Johnathan、

    [引用 userid="470463" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1187694/tms320f280023c-iq-format "]因此,如果我们编写(ADCcounts<<12)或编写_IQ12toIQ (ADCcounts),这两个操作是否会给我们提供相同的结果?

    这不是 IQ 库的工作方式。 IQ12等不同格式是定点数据类型、 因此需要为小数保留位。 第一条语句(ADCcounts <<12)将起作用、因为 IQ12使用12位作为小数精度。 但是、使用_IQ12toIQ (ADCcounts)将不起作用、因为此函数会将 IQ12定点数据类型(精度为12位)转换为任何全局 IQ 定点精度。 这假设 ADCcounts 值已经是定点格式、从您的问题中、似乎不会出现这种情况。 没有将整数转换为 IQ 的内置函数(IQmath 的用途是在 FPU 之前构建旧代码)。

    如果客户希望使用浮点数据类型、并且由于传统原因、他们的代码尚未使用 IQmath 库、我建议仅使用浮点数据类型、因为 F28002x 支持 FPU 的浮点类型。

    此致、

    Omer Amir

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Omer、

    我想在这里发布客户的反馈。

    我非常感谢这一职位,但我还不能继续进行我的怀疑。 我还有一个关于相同的问题。 如果我能得到答案,我将非常感谢 你。 我在该系列中的下一个问题是、ADC 为12位、因此最大计数将为4096。 但是、我将该值存储在16位变量中、因此将使用哪种 IQ 转换格式将其转换为_IQ24? _IQ12toIQ (ADC_Counts)或_IQ16toIQ (ADC_Counts)?

    请帮助详细说明。 非常感谢。

    此致、

    Jonathan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Johnathan、

    所有 IQ 精密数据类型都使用32位长数据类型。 如果客户正在使用 IQmath 库、则应按此方式进行存储。

    [引用 userid="470463" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1187694/tms320f280023c-iq-format/4475565 #4475565">但是、我将值存储在16位变量中、因此将使用哪种 IQ 转换格式将其转换为_IQ24? _IQ12toIQ (ADC_Counts)或_IQ16toIQ (ADC_Counts)?[/引用]

    如前所述 、IQmath 库使用定点数据类型。 这意味着值中的第一部分位保留用于整个数字量、最后一部分保留用于小数量(或精度)。 ADC 结果不是定点的、因此它们不能直接用于任何转换函数、因为它还不是 IQ 值。 前面提到的方法应该足够了、在这里、值被向左移位以考虑精度位的数量。

    此致、

    Omer Amir