Hi guys,
I am currently using the built-in ADC of the MSP430 and was wondering can I use the external 16 MHZ crystal for taking readings.
I only want to use the external 16 Mhz crystal for ADC readings to achieve quick results and use the internal 1Mhz crystal for everything else to save power.
Is this possible?
Here is the code i have written so far, but it is altering the master clock to 16mhz. I just just want to set it up as ACLK.
void init_16Mhz_adc(void){
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 |= XTS + DIVA_0; // ACLK = (LFXT1 = HF XTAL)/1
BCSCTL3 |= LFXT1S1; // LFXT1S1 = 3-16Mhz
do
{
IFG1 &= ~OFIFG; // Clear OSC fault flag
i = 0xFF; // i = Delay
while (i--); // Additional delay to ensure start
}
while (OFIFG & IFG1); // OSC fault flag set?
BCSCTL2 |= SELM_3 + SELS; // MCLK = SMCLK = LFXT1
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ADC10CTL1 = INCH_1 + CONSEQ_1 + ADC10SSEL_1;// A1/A0, repeat multi channel
ADC10CTL0 = ADC10SHT_0 + MSC + ADC10ON + ADC10IE + REF2_5V + SREF_1+REFON;
ADC10AE0 = 0x03; // P2.0,1 ADC option select
ADC10DTC1 = 0x2; // 2 conversions
}//void init_16Mhz_adc(void){
Am i doing something wrong or can this even be done?