in FDC1004.cpp [277:335]
uint8_t FDC1004::getRepeatCapacitance(uint8_t measurements, float * capacitance)
{
uint32_t rawdata;
float data;
uint16_t capdac;
uint32_t value[4];
getRepeatRawData(measurements, value);
int idx = 0;
if((measurements & 8)>0)
{
rawdata = (value[idx] & 0xFFFFFF); //make sure it is only 24 bit data
data = convert2Decimal24(rawdata);
capdac = readRegister16(FDC1004_CONF_MEAS1);
capdac = (capdac >> 5) & 0x1F; //isolate 5 bits [9:5] with capdac value
//capdac = capdac * 3.125; //in pF
capacitance[idx] = (data/524288.0) + (capdac*3.125);
idx+=1;//pow(2,19) equation from page 16 of datasheet
}
if((measurements & 4)>0)
{
rawdata = (value[idx] & 0xFFFFFF); //make sure it is only 24 bit data
data = convert2Decimal24(rawdata);
capdac = readRegister16(FDC1004_CONF_MEAS2);
capdac = (capdac >> 5) & 0x1F; //isolate 5 bits [9:5] with capdac value
//capdac = capdac * 3.125; //in pF
capacitance[idx] = (data/524288.0) + (capdac*3.125);
idx+=1; //pow(2,19) equation from page 16 of datasheet
}
if((measurements & 2)>0)
{
rawdata = (value[idx] & 0xFFFFFF); //make sure it is only 24 bit data
data = convert2Decimal24(rawdata);
capdac = readRegister16(FDC1004_CONF_MEAS3);
capdac = (capdac >> 5) & 0x1F; //isolate 5 bits [9:5] with capdac value
//capdac = capdac * 3.125; //in pF
capacitance[idx] = (data/524288.0) + (capdac*3.125); //pow(2,19) equation from page 16 of datasheet
idx+=1;
}
if((measurements & 1)>0)
{
rawdata = (value[idx] & 0xFFFFFF); //make sure it is only 24 bit data
data = convert2Decimal24(rawdata);
capdac = readRegister16(FDC1004_CONF_MEAS4);
capdac = (capdac >> 5) & 0x1F; //isolate 5 bits [9:5] with capdac value
//capdac = capdac * 3.125; //in pF
capacitance[idx] = (data/524288.0) + (capdac*3.125); //pow(2,19) equation from page 16 of datasheet
idx+=1;
}
return 0;
}