float FDC1004::getOffsetCalibration()

in FDC1004.cpp [353:363]


float FDC1004::getOffsetCalibration(uint8_t sensor)
{
  //5 bits [15:11] are integer in 2's complement
  //11 bits [10:0] are fractional part (in 2's complement????)
  //-16 to 16 pF
  uint16_t rawoffset = readRegister16(FDC1004_OFFSET_CAL_CIN1+(sensor-1));
  int integer_part = (rawoffset >> 10) << 19;               //make it 24 bit
  integer_part = (convert2Decimal24(integer_part) / pow(2,19));   //make it 5 bit
  float offset = integer_part + ((rawoffset & 0x0788) / pow(2,11));
  return offset;
}