请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430F5510 工具/软件:Code Composer Studio
你好,我对此完全陌生。 我使用的是Olimex板,我尝试从带有热敏电阻的分压器读取模拟电压值。 模拟输入引脚处的值约为1.4V。 我只能打印1023 (最大值)。 我无法找出问题所在。 有人能指出我的错误吗?
#include <msp430f5510.h>
#include <stdio.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
P1SEL = 0; //端口1到数字IO
P1DIR = BIT0; //将1.0 设置为输出方向,所有其它设置为0
P1OUT &=~B1LED
;/SIT0 (低电压) //启用A/D通道A0
ADC10CTL0 |= ADC10ON; //打开ADC10,设置采样时间
ADC10CTL0 |= ADC10SHT_2; //采样保持时间。 采样周期
中的时钟周期数ADC10CTL1 |= ADC10SHP; //将计时设置为在内部完成,而不是通过触发
器ADC10MCTL0 |= ADC10SREF0; //选择AVCC和avss作为参考
ADC10MCTL0 |= ADC10INCH0; //启用a0
volatile unsigned int I;
printf ("完成设置\n");
while (1){
ADC10CTL0 |= ADC10ENC; //启用转换
ADC10CTL0 |= ADC10SC; //在
((ADC10CTL1 & ADC10BUSY)==1)时触发新转换{}//
仅在1 (繁忙)
时等待i =5万; // SW延迟,倒计时,使用时钟周期。
我--;// 只是给出
一个要做的事情(I !=0);
printf ("temp =%d\n",ADC10MEM0);
}