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/MSP430F4152:高工作频率的ADC10错误结果

Guru**** 2526700 points
Other Parts Discussed in Thread: MSP430F4152

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/655413/ccs-msp430f4152-error-adc10-result-with-high-operation-frequency

部件号:MSP430F4152

工具/软件:Code Composer Studio

尊敬的各位:

如今,我已经使用MSP430F4152。 我无法从ADC10获取正确的数据

过去,我没有更换MCLK,但这次。

当我将频率设为8MHz时,ADC10的ADC10MEM的结果始终为0。

使用相同的ADC代码,我可以获得结果,而无需将MCLK更改为8MHz。

问题是如何设置ADC10以使8MHz-MCLK的结果正确?

这些是我的ADC10代码,

int i;
无符号长Temp_value;
temp_value=0;
for (i=0;i<1000;i++)//计算平均值用于提高数据的准确性

ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON+ ADC10ON + ADC10IE;//ref 1.5v
ADC10CTL1 = inch_4;//设置ADC端口A4。
ADC10CTL0 |= ENC + ADC10SC;//开始采样和转换
temp_value += ADC10MEM;//获取值
ADC10CTL0 &=~ENC;
}
temp_value /= 1000;
Value = Temp_value;//获取平均值

此致,

陈玉泉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您需要等待ADC完成。 以前,ADC时钟的运行速度比MCLK快得多,因此它"偶然"地工作。 现在它没有。 尝试类似以下的操作:

    > while (ADC10CTL1&ADC10BUSY)/*空*/;//等待ADC完成

    在设置ADC10SC和读取ADC10MEM之间。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Bruce:

    感谢你的帮助。
    它成功地工作。

    此致,
    陈玉泉