使用TI的MSP430 FF22x4读取电压

时间:2011-04-13 14:30:28

标签: msp430

我正在尝试使用TI的MSP430测量功率器件的电压。电压源连接到目标板上的A1(即P4)和地(即P1)。

以下是相关代码:

ADC10CTL1 = INCH_1 + CONSEQ_0; //A1, single measurement
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE + ADC10SR; //same as sample temperature sensor code
ADC10CTL1 &= ~ADC10DF; //setting binary format for ADC10MEM
ADC10CTL0 |= ENC + ADC10SC; //Sampling and conversion start
 __bis_SR_register(CPUOFF + GIE);        // LPM0 with interrupts enabled
//read result

我遇到以下问题:

  1. 我正在AP上打印ADC10MEM内容,我看到ADC10MEM的前6位都是1,而不是0.我无法得到相同的原因。

    < / LI>
  2. 如果我只考虑ADC10MEM的最后10位,我可以看到该值随着电压的上升和下降而增加和减少,但如果我使用公式获得Vin:

  3. N = 1023 *((Vin-VR-)/(VR + -VR-)),我没有得到正确的值。 (VR + = 1.5V,VR- = 0V,电池为目标板供电) N:ADC10MEM中的值,十进制

    我无法找到我错的地方。我是否必须启用模拟输入引脚(ADC10AE0 | = 0x10),并设置方向(P4DIR | = 0x01)?

    谢谢!

1 个答案:

答案 0 :(得分:0)

TI为这些MSP430提供了很好的示例代码:

http://www.ti.com/litv/zip/slac123d

其中一个也读取电压,你应该用它来比较你正在做的事情。我不记得ADC10DF,但这似乎是一件可疑的事情(因为你的错误与数据有关)。

另外,你说你读了结果。如果您没有等待,结果无效。你没有显示任何中断例程,所以可能会有一些事情发生。