Преобразование напряжения АЦП MSP430 g2553, не получая значение

Я пытаюсь запрограммировать TI MSP430 g2553 ADC10 для чтения входных напряжений. Однако когда я подключаю его к источнику питания, я не получаю значения из регистра ADC10MEM. Я пробовал много разных руководств, но ничто не смогло решить проблему. Я считаю, что проблема в том, как я настраиваю АЦП, но я не знаю, что такое множество переменных, поэтому я не уверен, что нужно устанавливать, а что нет. Кто-нибудь знает, как я могу это понять, или знает, что нужно сделать, чтобы правильно настроить АЦП? Код, который я использую, был взят из

http://blog.elevendroids.com/2013/06/code-recipe-reading-msp430-power-supply-voltage-level/

и модифицированный в соответствии с моими потребностями, но он не дает мне никакой рабочей ценности, даже когда источник питания выключен, он не дает мне 0.


person NumberOneRobot    schedule 03.05.2014    source источник
comment
Можете ли вы опубликовать свой код? Код по ссылке выглядит нормально, я бы, наверное, сразу использовал ссылку 2,5 В, чтобы упростить его, но он должен работать.   -  person ekoeppen    schedule 07.05.2014


Ответы (1)


Не могли бы вы попробовать это? Он возвращает напряжение в милливольтах:

unsigned read_voltage(void)
{
    unsigned adc, voltage;

    ADC10CTL1 = INCH_11 | ADC10DIV_3 | ADC10SSEL_3;
    ADC10CTL0 = ADC10SHT_3 | ADC10ON | ENC | REF2_5V | ADC10SC | REFON | SREF_1;
    while (ADC10CTL1 & ADC10BUSY) ;
    adc = ADC10MEM;
    ADC10CTL0 &= ~ENC;
    voltage = adc * 5;

    return voltage;
}
person ekoeppen    schedule 07.05.2014