2011-04-13 47 views
1

我想用TI的MSP430测量功率器件的电压。电压源连接到目标板上的A1(即P4)和地(即P1)。使用TI的MSP430读取电压FF22x4

下面是相关代码:

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.我无法得到相同的原因。

  2. 如果我只考虑ADC10MEM的最后10个比特,我可以看到,该值增加,并与上升和下降的电压下降,但如果我使用下式获得VIN:

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

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

谢谢!

+0

尝试http://electronics.stackexchange.com/ – skaffman 2011-04-13 14:38:11

+0

感谢您的提示。我在那里问了[question](http://electronics.stackexchange.com/questions/13009/reading-voltage-using-tis-msp430-ff22x4)。 – Chaitanya 2011-04-13 14:58:07

+0

我也在electronics.stackexchange.com上回答了这个问题,请按照上面评论中的链接。 – Chaitanya 2011-04-14 15:34:10

回答

0

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

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

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

另外,你说你读过结果。如果你没有足够的等待,结果是无效的。你没有显示任何中断程序,所以也许有什么事情发生。

+0

链接不工作 – dvdmn 2014-05-26 00:29:14

+0

www.ti.com/lit/zip/slac123 – 2014-05-26 01:01:14