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.

[参考译文] CCS/TMS320F28335:AdcRegs.ADCRESULT0的含义>>4、ADCRESULT0的数据操作

Guru**** 2537240 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/706800/ccs-tms320f28335-meaning-of-adcregs-adcresult0-4-data-manipulation-of-adcresult0

器件型号:TMS320F28335
Thread 中讨论的其他器件:controlSUITEC2000WARE

工具/软件:Code Composer Studio

我在 许多程序中找到 AdcRegs.ADCRESULT0>>4等术语。 我 没有明白 >>4的含义。  

此外、请帮助我处理 ADC 结果数据并进行存储?

例如、我需要从 FFFF 中减去 AdcMirror.ADCRESULT0。 是不是要编写代码、如何验证结果?

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

    您好、Soumya、

    [引用 user="Soumya Ranjan Meher">我在 许多程序中找到 AdcRegs.ADCRESULT0 >> 4等术语。 我 没有明白 >>4的含义。  [/报价]

    它是一个简单的位右移操作。 作为12位 ADC、这是将16位值转换为12位值的方法。

    [引用 user="Soumya Ranjan Meher"]例如、我需要从 FFFF 中减去 AdcMirror.ADCRESULT0。 HOE 编写代码以及如何验证结果?[/quot]

    将 ADC 结果值存储到变量'a'和 b = 0xFFFF。 C = b-a;在调试模式下、您可以在表达式窗口中监视这3个变量。

    此致、

    Gautam

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢主席先生。 现在我的程序正在运行、但仍然无法跟踪变量。 在表达式窗口中、当我键入变量的名称(例如 A)时、它会在向下滚动菜单中显示除"A"以外的许多选项。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    检查"A"是否为全局变量。 对于实时变量更新、需要将其设置为全局变量。 此外、非常重要的是、您需要启用表达式窗口顶部的"Continuous Refresh"按钮。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经执行了所有步骤。 它可以通过添加等简单程序正常工作。 但我无法存储 ADC 结果值。 我已经开始了

    M = AdcMirror.ADCRESULT0;

    N = AdcRegs.ADCRESULT0;

    镜像和 AdcRegs 值显示正确的结果、但 m 和 n 值显示错误。 我将随附一个快照。

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

    看起来 main()中的 while (1)循环不允许执行 m 和 n 分配。 这可能是第48行发出警告的原因。

    此外、由于已在硬件中完成、因此不需要移位 AdcMirror 的值。

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

    请向我推荐解决方案。 这是另一个没有任何警告的屏幕截图。 尽管镜像结果0值显示正确、但变量 a 和 b 不正确。 请帮助我正确地查看变量中的结果、以便我可以对 ADC 结果进行数学运算。

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

    请向我推荐解决方案。 这是另一个没有任何警告的屏幕截图。 尽管镜像结果0值显示正确、但变量 a 和 b 不正确。 请帮助我正确地查看变量中的结果、以便我可以对 ADC 结果进行数学运算。

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

    您好!

    最好在获取结果之前检查 ADCINT 闪存。 如下所示:

    while (1)
    {
    while (AdcRegs.ADCINTFLG.bit.ADCINT1 = 0){}
    AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//清除 ADCINT1
    
    A = AdcResult.ADCRESULT0;
    }
    

    请参考:C:\ti\controlSUITE\device_support\F2833x\v142\DSP2833x_examples_ccsv5\ADC_SoC

    此致、

    Gautam

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主席先生,
    我无法进行检查。 当我插入此代码时、错误消息"struct adc_regs has no field ADCINTFlg"也是下一行的错误消息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主席先生、我再标记一件事、 即每当我从 ADC 结果值(如5)中减去一个整数时、结果为65531。 (6553-5=65531)。 十进制的65536等于十六进制的1 0000。 那么、对于16位或32位、是否存在任何问题?

    另一个要点是、当 ADC A0引脚连接到3V3或 GND 时、结果保持不变(65531)。 我随附了一些屏幕截图供参考。

    同时连接到3V3

    连接 到 GND 时、

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

    在 ADC 被触发之前、您几乎好像正在尝试读取结果?

    您是否曾尝试运行 controlSUITE 或 C2000Ware 中未经修改的 ADC 示例? 我建议您从一个工作示例开始、然后使用频繁的构建在您自己的副本中缓慢地进行编辑、以确保一切都按预期工作。

    Tommy