本帖最后由 arm菜鸟人 于 2013-12-10 16:47 编辑
使用MSP430F149ADC12,输出一直是0x0FFF。很郁闷,大家帮找茬,看问题出在哪里。不胜感激。
void ADC12_Init(void)
{
volatile unsigned int i;
P6SEL |= 0x01; // Enable A/D channel A0
P6DIR &= ~BIT0; // 设置P6.0为输入
ADC12CTL0 &= ~ENC;
ADC12CTL0 = ADC12ON+SHT0_2+REFON+REF2_5V; // Turn on and set up ADC12
ADC12CTL1 = SHP; // Use sampling timer
ADC12MCTL1 = SREF_1 + INCH_0; // Vr+=Vref+
for ( i=0; i<0x3600; i++) // Delay for reference start-up
{
}
ADC12CTL0 |= ENC; // Enable conversions
}
/****************************************************************************************
函数名称: ADC12_Convert(void)
功 能: ADC12 启动函数
参 数: 无
返回值 : 无
说明 :
****************************************************************************************/
unsigned int ADC12_Convert(void)
{
unsigned int temp = 0;
ADC12CTL0 |= ADC12SC; // ADC12SC 启动模式
while ((ADC12IFG & BIT0) == 0); // 等待ADC 完成
temp = ADC12MEM0;
return temp;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
- void ADC12_Init(void)
- {
- volatile unsigned int i;
- P6SEL |= 0x02; // Enable A/D channel A0
- P6DIR &= ~BIT1; // 设置P6.0为输入
- ADC12CTL0 &= ~ENC;
- ADC12CTL0 = ADC12ON+SHT0_2+REFON+REF2_5V; // Turn on and set up ADC12
- ADC12CTL1 = SHP; // Use sampling timer
- ADC12MCTL1 = SREF_1 + INCH_1; // Vr+=Vref+
- for ( i=0; i<0x3600; i++) // Delay for reference start-up
- {
- }
- ADC12CTL0 |= ENC; // Enable conversions
- }
- /****************************************************************************************
- 函数名称: ADC12_Convert(void)
- 功 能: ADC12 启动函数
- 参 数: 无
- 返回值 : 无
- 说明 :
- ****************************************************************************************/
- unsigned int ADC12_Convert(void)
- {
- unsigned int temp = 0;
- ADC12CTL0 |= ADC12SC; // ADC12SC 启动模式
- while ((ADC12IFG & BIT0) == 0); // 等待ADC 完成
- temp = ADC12MEM1;
- return temp;
- }
复制代码一周热门 更多>