在使用MSP430FR5969开发板调试时,发现VLO的频率变化很大,在JTAG模式下VLO的频率是10.4K左右,只要退出debugger,硬件不做改动,VLO的频率就变成了9.1K左右,最初以为是JTAG模式下的电压和退出后的电压不一致造成的,但在调试过程中发下,是ADC12影响了VLO的频率,只要屏蔽掉ADC12的初始化代码,VLO的频率基本稳定,请大神们帮忙分析一下。ADC12代码如下:
{
P1SEL1 = 0;P1SEL0 = 0; //将其他采样通道关闭
P1SEL1 |=BIT0| BIT1|BIT2|BIT3; // Configure P1.2 ,P1.3for ADC
P1SEL0 |= BIT0| BIT1|BIT2|BIT3;
PM5CTL0 &= ~LOCKLPM5;
ADC12CTL0 &=~ ADC12ENC; //初始化在ENC = 0下修改
char busy_i=0;
while(REFCTL0 & REFGENBUSY)// 开启内部2V的参考电压
{
busy_i++;
if(busy_i>>2) break;
}
REFCTL0 |= REFVSEL_1 | REFON; // Select internal ref = 2.0V
ADC12CTL0 |= ADC12SHT0_0 | ADC12ON|ADC12MSC; // ADC
//ADC12CTL1 = ADC12SHP;
ADC12CTL1 = ADC12SHP|ADC12CONSEQ_1; // 序列通道单次采集
ADC12CTL2 |= ADC12RES_2|ADC12PWRMD; // 12位转换精度,低功耗模式
// ADC12CTL3 |= ADC12CSTARTADD_1;
ADC12MCTL0 |= ADC12INCH_0| ADC12VRSEL_1;//
ADC12MCTL1 |= ADC12INCH_1| ADC12VRSEL_1;
ADC12MCTL2 |= ADC12INCH_2| ADC12VRSEL_1;
ADC12MCTL3 |= ADC12INCH_3| ADC12VRSEL_1|ADC12EOS; //
ADC12IER0 |= ADC12IE3; // Enable ADC conv complete interrupt
ADC12CTL0 |= ADC12ENC;
}