uint32_t FDC1004::getRawData()

in FDC1004.cpp [137:172]


uint32_t FDC1004::getRawData(uint8_t measurement, uint8_t rate)
{
  //check if measurement is 1-4
  uint32_t data = 0;
  //check is measurement is ready
  //read FDC_conf, check if DONE_X is 1
  //return DATA_NOT_READY
  //trigger single measurement
  uint16_t trigger_data;
  trigger_data = 0;             //repeat disabled
  trigger_data |= (rate) << 10; // sample rate

  //only one channel can be set to trigger at a time.
  trigger_data |= (1 << (8-measurement)); 
  writeRegister16(FDC1004_CONFIG, trigger_data);
  // trigger_data = readRegister16(FDC1004_CONFIG);
  // Serial.println(trigger_data, BIN);
  delay(15); //wait for data conversion
  
  // trigger_data = readRegister16(FDC1004_CONFIG);
  // Serial.println(trigger_data, BIN);

  uint16_t msb = readRegister16(FDC1004_MEAS1_MSB+2*(measurement-1));
  uint16_t lsb = readRegister16(FDC1004_MEAS1_LSB+2*(measurement-1));
  // Serial.println(msb, BIN);
  // Serial.println(lsb, BIN);
  data |= msb;
  data = (data << 16);
  data |= lsb;
  data = (data >> 8);

  //trigger_data = readRegister16(FDC1004_CONFIG);
  //Serial.println(trigger_data, BIN);
  return data;

}