Ds4830a user’s guide – Maxim Integrated DS4830A Optical Microcontroller User Manual

Page 64

Advertising
background image

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

}

Advertising