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.

[参考译文] MSPM0L1306:通过轮询检查 ADC 转换完成

Guru**** 2445440 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1269196/mspm0l1306-adc-conversion-complete-checked-by-polling

器件型号:MSPM0L1306

您好!

我正在使用 ADC 通道0进行电压转换、需要在需要时读取、它不是基于时间的操作、我们可以说如果特定条件因某些外部事件变为真、那么我只需要读取 ADC。

因此、为此、我只需要在那时轮询 ADC、直到下一次才会再次使用 ADC。

因此、我也不需要生成 ADC 转换内存寄存器中断。 如何接收此 ADC 轮询?

我已通过 TRM 确认、我们在 ADC 状态寄存器中有 BUSY 位可以监控 ADC 运行状态、但它只给出 ADC 启用/禁用状态。

我希望在开始后等待 ADC 转换完成、只有在完成后、我才需要继续、那么如何在 ADC 中实现转换完成的轮询?

任何输入都会有所帮助。

谢谢。

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

    我想您可以:

    1.不启用 ADC 中断。

    2.读取 ADC 转换标志以了解 ADC 转换是否完成。

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

    感谢伊森的回复,我几个小时前解决了这个问题。 正如你正确地指出的那样、我在没有启用 ADC 中断的情况下进行同样的操作、通过 DL_ADC12_getRawInterruptStatus ()来监视针对 ADC mem-0位的 RIS 寄存器;如果新值被载入到 ADC mem-0中、那么这个值将返回值、我可以通过监视这个位来轮询 ADC 转换。

    最后我还通过 DL_ADC12_clearInterruptStatus ()清除 ADC 中断状态;否则、下次我们再次轮询 ADC 时、  DL_ADC12_getRawInterruptStatus ()将始终返回1。 我们需要在 ADC 轮询结束时清除该中断状态位。

    谢谢。