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.
您好!
我根据"adc_ex2_soc_epwm"示例创建了一个项目、我将 PWM 频率增加到了200kHz。 我注意到、当我删除下面用于检查溢出的代码部分时、一段时间后、ADC 停止生成中断。 显然、如果一个溢出发生并且相应的标志未被清除、ADC 中断将停止发生。 如何配置 ADC、这样、即使发生溢出、中断也永远不会停止? 因为我的中断率非常高、所以我不想使用这个不断检查溢出的慢速代码。
if (true=ADC_getInterruptOverflowStatus (myADC0_base、ADC_INT_number1))
{
ADC_clearInterruptOverflowStatus (myADC0_base、ADC_INT_number1);
ADC_clearInterruptStatus (myADC0_base、ADC_INT_number1);
}
阿里
您好、Ari:
ADC_enableContinuousMode(myADC0_BASE, ADC_INT_NUMBER1);
这就向 ADCINTSEL1N2寄存器的 INT1CONT 位写入数据。
此致、
伊袋
谢谢 Ibukun,现在它工作不需要检查溢出.
不使用 "用于 ADC 中断的连续模式"有什么好处吗?
阿里
Ari、
溢出状态标志的主要功能是帮助确保没有 ADC 转换结果因其他地方的处理而丢失、同时为系统提供机会对丢失的转换做出正确响应。 如果在系统中、您不关心是否错过了转换(例如、由于不同的外设中断占用了处理时间)、那么您可以忽略该标志。 如果错过转换确实会产生后果、则应检查溢出状态并进行处理。
连续模式只是告诉 ADC 继续发出 CPU 中断、而不管是否发生溢出。 这在某些系统中可能并不可取(例如安全关键型)、但在其他系统中是可以接受的。
此致、
伊袋