用5438A的ADC 采集供电电池电压的问题。
打算用5438A采集供电电池的电压值。原来用149试验是行的。现在怎么不行了。看了看文档也没发现什么问题,有用过朋友没?指点一下。电路连接:AVCC接电池的正极;VREF 接0.1UF电容到地。ADC设置如下:
void ADC_init(void)//
{
ADC12CTL0&= ~ADC12ENC;//ENC=0;
ADC12CTL0 = ADC12ON+ADC12SHT0_8+ADC12SHT1_8+ADC12MSC+ADC12REFON+ADC12REF2_5V;//开ADC12+采样保持时间(256个CLK周期);+自动采样
//ADC12REFON+ADC12REF2_5V:基准开启,用2.5V
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2; //保持脉冲模式:选择信号从“采样定时器
ADC12CTL2 |=ADC12TCOFF;//温度传感器关闭,
ADC12MCTL0|=ADC12SREF1+ADC12INCH_11;//VR+ = VREF+ and VR- = AVSS;输入:(AVCC – AVSS) / 2
ADC12IE =ADC12IE0;//允许中断。
ADC12CTL0 |= ADC12ENC; //ADC12-A;使能转换;。
ADC12CTL0 |= ADC12SC; //ADC12-A启动转换和采样。
}
#pragma vector=ADC12_VECTOR//ADC GFY
__interrupt void ADC12ISR (void)
{
switch(__even_in_range(ADC12IV,34))
{
case6: // ADC12IFG0
LCD_PutChar3(ADC12MEM0);//显示ADC显示采样值
ADC12CTL0 =0;//关闭ADC
ADC12IE = 0x00;//关闭ADC
}
default: break;
}
} 看了看文档也有介绍说需要设置REF;我在void ADC_init)中前面加了一句REFCTL0 |= REFMSTR+REFVSEL_2+REFON+REFTCOFF;
不过貌似也不不行。改变不同的电池电压值, 采集的结果都貌似都是最大值4095?{:sweat:} 锂电池电压应该比芯片最大电压高吧,需要分压之后才能用adc采 rainyuoko 发表于 2014-3-21 17:20
锂电池电压应该比芯片最大电压高吧,需要分压之后才能用adc采
不是锂电池,是干电池。两节1.5V的。直接接到AVCC上。当作模拟电源。在149上是可以的 4538A;ADC基准电压的设置,有谁用过,给指点一下啊{:mad:}
页:
[1]