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.

[参考译文] TMS320F280025C:暂时禁用 ADC 中断

Guru**** 2401445 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1136387/tms320f280025c-disable-adc-interrupt-temporarily

器件型号:TMS320F280025C

您好专家、

我有一个问题、为了完善我的系统、包括控制环路、我想暂时停用 ADC 中断、我解释:
我的晶体管控制 PWM 的工作频率为40kHz、我还有一个 ADC 中断、工作频率为320kHz、因为我在8个点上进行数字平均。

我的稳压中断以20kHz 的频率工作、以便尝试有最短的时间来执行所有操作(无论如何、它很复杂)。 在 ADC 中断中完成平均计算后、我想将其停用、并仅在下一个调节中断期间返回、以便为我提供时间。


我的问题是如何停用特定中断? 我尝试了中断禁用(INT_ADCA1)命令、但它不起作用。

可以帮帮我吗?

谢谢  

Damien

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

    您好 Damien、

    要禁用 ADC 中断,请使用 ADC_DisableInterrupt()函数。

    例如:

    // Disable ADCA INT1
    ADC_disableInterrupt(ADCA_BASE, ADC_INT_NUMBER1);
    // Perform processing
    // ...
    // Enable ADCA INT1
    ADC_enableInterrupt(ADCA_BASE, ADC_INT_NUMBER1);
    

    此致、
    Ibukun

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

    您好 Damien、

    刚刚回到这个线程。 要添加:

    如果 您对8个以上的样本进行过采样、则根据您使用的 SOC 数量、还有其他选项。 您可以配置8个连续 SOC、以在突发中对同一通道进行采样、而不是每次触发中断、并且仅在最后一个 SOC 上触发中断。 因此、在您的情况下、您可以配置 SOC 优先级以使 SOC 8-15循环和其他 SOC 具有高优先级、并启用大小为8的突发模式。 突发将由您的 PWM 触发。 当触发突发转换时、SOC 8-15背对背触发、然后在15时触发中断。 这可以为您省去禁用中断的麻烦、还可以节省处理周期。

    当然、这取决于您在 ADC 模块上使用了多少 SOC。