使用TI的MSP430 FF22x4读取电压

问题描述

| 我正在尝试使用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
我遇到以下问题: 我在AP上打印ADC10MEM的内容,并且看到ADC10MEM的前6位全为1,而不是0。我无法得到相同的原因。 如果仅考虑ADC10MEM的最后10位,则可以看到该值随电压的上升和下降而增加和减少,但是如果我使用以下公式获得Vin: N = 1023 *((Vin-VR-)/(VR +-VR-)),我没有得到正确的值。 (当电池为目标板供电时,VR + = 1.5V,VR- = 0V) N:ADC10MEM中的值,十进制 我找不到我要去哪里了。我是否必须启用模拟输入(ADC10AE0 | = 0x10)的引脚,并设置方向(P4DIR | = 0x01)? 谢谢!     

解决方法

TI为这些MSP430提供了不错的示例代码:
http://www.ti.com/litv/zip/slac123d
其中之一还读取电压,您应该使用它与您所做的进行比较。我不记得ADC10DF,但这似乎是可疑的事情(因为您的错误与数据输出有关)。 另外,您说您阅读了结果。如果等待时间不足,则结果无效。您没有显示任何中断例程,因此可能正在发生某些事情。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...