请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP-EXP430FR2433 主题中讨论的其他器件:MSP430FR2433
您好!
我对 MSP430FR2433上的 ADC 有一些问题。 它不工作。 我回到了非常基本的示例、但也无法使其正常工作。 您能否检查这在您的电路板上是否起作用? 我的2个开发套件出现故障。
我希望当 A =ADC_INPUT_DVCC 时、我得到1023、A =ADC_INPUT_DVSS I 得到0、而 A =ADC_INPUT_TEMPSENR I 得到温度、A =ADC_INPUT_REFVOLTAGE I 得到~1/2。
但是、我得到的所有这些值都是300。 怎么回事?
#include #include include "adc.h" void main (void) { WDT_A_HOLD (WDT_A_base); //init_clock(); PMM_enableInternalReference(); PMM_enableTempSensor(); _delay_cycles (6000); GPIO_setAsOutputPin (GPIO_PORT_P1、GPIO_PIN_All8); GPIO_setAsOutputPin (GPIO_PORT_P2、GPIO_PIN_All8); GPIO_setAsOutputPin (GPIO_PORT_P3、GPIO_PIN_All8); GPIO_setOutputLowOnPin (GPIO_PORT_P1、GPIO_PIN_All8); GPIO_setOutputLowOnPin (GPIO_PORT_P2、GPIO_PIN_All8); GPIO_setOutputLowOnPin (GPIO_PORT_P3、GPIO_PIN_All8); PMM_unlockLPM5 (); ADC_INIT (ADC_base、ADC_SAMPLEHOLDSOURCE_SC、ADC_CLOCKSOURCE_ADCOSC、ADC_CLOCKDIVIDER_1); ADC_ENABLE (ADC_base); ADC_setupSamplingTimer (ADC_base、ADC_CYCLEHOLD_64_cycles、ADC_MULTIPLESAMPLESDISABLE); volatile uint16_t a = 0; volatile uint16_t res[16]; while (1){ ADC_configureMemory (ADC_base、A、ADC_VREFPOS_AVCC、ADC_VREFNEG_AVSS); //开始单次转换,无重复或序列。 ADC_startConversion (ADC_base、ADC_SINGLECHANNEL); //等待中断标志生效 while (!(ADC_getInterruptStatus (ADC_base、ADCIFG0))); RES[A]= ADC_getResults (ADC_base); //清除中断标志并启动另一个转换 ADC_clearInterrupt (ADC_base、ADCIFG0); _delay_cycles (5000); A++; if (a==16) a=0; }

