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.
所有、
这更多地是一个与 Tiva 外设库相关的问题、当使用 ADCClockConfigSet 时、提供任何 ADC_CLOCK_RATE_*参数是否实际上是强制性的?
目前、我们将该函数调用为"ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PIOSC、1);"
然后、我们使用 ADC 触发计时器以1KHz 的频率设置我们的实际采样率、因此是否真的需要提供该第二个参数以及时钟源? 将0写入 ADC 外设配置寄存器中的 ADC 采样率会有什么影响、当缺少此参数时、该函数似乎会做什么?
提前感谢您、
杰西
您好!
目前、我们将该函数调用为"ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PIOSC、1);"
[/报价]您的上述声明将使用 PIOSC 除以1 (16MHz)作为 ADC 和以最大采样率采样的时钟源。 您的上述声明将作为已是默认设置的效果。 换句话说、如果您不调用 ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PIOSC、1)、则将获得相同的结果。
[quote userid="577505" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1345133/tm4c1231d5pz-using-adcclockconfigset-without-adc_clock_rate_难道真的需要提供第二个参数和时钟源吗? [/报价]如果不设置转换速率(例如 ADC_CLOCK_RATE_FULL)、则它默认为最大转换率。
您好 Charles、
我的问题是、似乎始终会根据功能代码写入此寄存器
因此、在我看来、这个寄存器不是0x7、而是变为0x0、这是问题吗?
当我调用 ADCClockConfigGet ()时似乎也是这样,我得到0x1,这意味着 PIOSC 被选为时钟,但我希望得到0x71,表示 PIOSC 源和默认的1Msps,如果我在没有函数调用的情况下调用它,我得到0x70
此致、
杰西
您好、Jesse:
我明白你在说什么。 我只是在未指定 adc_clock_rate_full 的情况下尝试了一下。 ADCPC 寄存器变为0。 "0"应是保留值。 我认为它对内部 ADC 操作没有影响、并回退到该行为、就像配置了完全转换一样。 我在 LaunchPad 上通过将 AIN0引脚短接至 GND 或3.3V 来尝试它、然后我看到转换值为0000或4095。 在任何情况下、如果您将调用 ADCClockConfigSet、则请指定转换率。 如前所述、在本例中、您可能已经 完全省略了 ADCClockConfigSet 、它将默认为 ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PIOSC | ADC_CLOCK_RATE_FULL、1)。
您好、Jesse:
抱歉、 我错误地认为您使用的是 TM4C129 MCU、但您使用的是 TM4C123。 我上面介绍的内容仅适用于 TM4C129。 如果您使用 TM4C123并且想要使用 PIOSC 作为时钟源、则必须调用 ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PIOSC | ADC_CLOCK_RATE_FULL、1)、因为对于 TM4C123、PIOSC 不是 ADC 的默认时钟源。