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/TMS320F28027:关于 ADC 配置

Guru**** 2535440 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/603143/ccs-tms320f28027-about-adc-configuration

器件型号:TMS320F28027

工具/软件:Code Composer Studio

您好,

我是微控制器的新手。 我开始从示例"adc_soc"中了解 ADC 配置。 我不理解以下内容。 请帮助

/等待 ADC 中断
  for (;;)
  {
     LoopCount++;
  }

为什么需要 LoopCount++循环?

_interrupt void ADC_ISR (void)

 Voltage1[ConversionCount]= AdcResult.ADCRESULT1; //丢弃 ADCRESULT0作为版本0的第1个样本勘误表权变措施的一部分
 Voltage2[ConversionCount]= AdcResult.ADCRESULT2;

 //如果记录了20次转换,则重新开始
 if (ConversionCount = 9)
 {
    ConversionCount = 0;
 }
 其他
 {
     ConversionCount++;
 }

 AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;  //清除 ADCINT1标志为下一个 SOC 重新初始化
 PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;  //确认 PIE 中断

 返回;

我已经了解到、ADC_ISR 函数在" PieVectTable.ADCINT1 =&ADC_ISR;"中被调用

但它的作用是什么?循环是如何继续的?

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

    您好、Madhuri、

    [引用 user="Madhuri Depuru"]为什么需要 LoopCount++循环?

    没有具体原因、只需计算代码周期总数。

    [引用用户="Madhuri Depuru"]

    我已经了解到、ADC_ISR 函数在" PieVectTable.ADCINT1 =&ADC_ISR;"中被调用

    但它的作用是什么?循环是如何继续的?

    [/报价]

    以上是将 ADC ISR 映射到矢量表中的 ADC 中断。

    如果您仍有任何疑问、请告诉我。

    此致、

    Gautam

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

    大家好、Madhuri。

    关于您的问题:

    [引用 user="Madhuri Depuru"]为什么需要 LoopCount++循环?

    实际上不需要"LOOPCount++"。 这只是一个计数器、您可以检查以确保您的 MCU 正常工作。 您可以安全地删除此行。

    [引用用户="Madhuri Depuru"]

    我已经了解到、ADC_ISR 函数在" PieVectTable.ADCINT1 =&ADC_ISR;"中被调用

    但它的作用是什么?循环是如何继续的?

    [/报价]

    它不会在该行中调用。 此过程是和 ISR。 这意味着、当触发特定中断时、将调用此过程。 在您的情况下、该中断为"ADCINT1"。 "  PieVectTable.ADCINT1 =&ADC_ISR;"行表示"当 ADCINT1中断被触发时、调用名为"ADC_ISR"的函数。

    因此、将计算您的环路、直到发生 ADCINT1中断。 循环停止后、计算"ADC_ISR"、然后继续循环。

    我强烈建议您花时间研究一些研讨会、例如:

    此外、您还可以查看 wiki -其中提供了示例项目和培训:    

    我认为这些资源 可以帮助解答 C2000 neophyte 可能遇到的许多问题。

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

    感谢 Gautam & Disona

    您的回复非常有用

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

    祝您好运、
    Gautam