User guide
DS4830A User’s Guide
64
ADST_bit.ADCFG = 0; //set ADDATA to data buffer
ADADDR_bit.ADSTART = 0; //start sequence with ADCFG [0]
ADADDR_bit.ADEND = 15; //end sequence with ADCFG [15]
ADST_bit.ADCONV = 1; //start the conversions
while (1)
{
while (!ADST_bit.ADDAI); //wait for conversions to complete
ADST_bit.ADDAI = 0;
ADST_bit.ADIDX = 0; //set ADDATA to data buffer [0]
for (iCount = 0; iCount < 16; iCount++)
ch0 [iCount]= ADDATA; //read and store ch0 voltage to variable
}
7.3.3 – Continuous Conversion of 16 Samples of Ch0 Using ADC Averaging
PINSEL = 0x0003; //Configure Pins as ADC Ch0 (Diff)
REFAVG_bit.INTREF = 1; //Enable ADC internal reference
for(iCounter = 0; iCounter < 1000; iCounter++); //Wait ~1ms to settle ADC internal reference
ADCN_bit.ADCONT = 1; //run a continuous conversion sequence
ADST_bit.ADCFG = 1; //set ADDATA as configuration (ADCFG)
ADST_bit.ADIDX = 0; //ADIDX = 0, set to ADCFG [0]
ADDATA = 0x0020; //ADCFG [0]: Differential voltage, CH0, 1.2 V FS, Right Aligned
ADST_bit.ADCFG = 0; //set ADDATA to data buffer
ADST_bit.ADCAVG = 1; //set ADDATA to data buffer
ADDATA = 0x0003; // Average of 16 samples of Ch0
ADST_bit.ADCAVG
= 0;
ADADDR_bit.ADSTART = 0; //start sequence with ADCFG[0]
ADADDR_bit.ADEND = 0; //end sequence with ADCFG[0]
ADST_bit.ADCONV = 1; //start the conversions
while (1)
{
while (!ADST1_bit.ADDAI); //wait for conversions to complete
ADST_bit.ADIDX = 0; //set ADDATA to data buffer [0]
ch0 = ADDATA; //read and store ch0 voltage to variable
ADST1_bit.ADDAI = 0; //clear ADDAI flag
}