private int ReadRawPress() { int delay, msb, lsb, xlsb, raw; I2CCmd.WriteReg8(_bmpHandle, ADDR_CONTROL, CMD_READ_PRESS | ((int)_overSampleMode << 6)); switch (_overSampleMode) { case (SampleCycles.One): delay = 5; break; case (SampleCycles.Two): delay = 8; break; case (SampleCycles.Four): delay = 14; break; case (SampleCycles.Eight): delay = 26; break; default: delay = 5; break; } Thread.Sleep(delay); msb = I2CCmd.ReadReg8(_bmpHandle, ADDR_PRESS); lsb = I2CCmd.ReadReg8(_bmpHandle, ADDR_PRESS + 1); xlsb = I2CCmd.ReadReg8(_bmpHandle, ADDR_PRESS + 2); raw = ((msb << 16) + (lsb << 8) + xlsb) >> (8 - (int)_overSampleMode); return(raw); }
private int ReadRawTemp() { int raw; I2CCmd.WriteReg8(_bmpHandle, ADDR_CONTROL, CMD_READ_TEMP); Thread.Sleep(50); raw = I2CCmd.ReadRegU16(_bmpHandle, ADDR_TEMP); return(raw); }
private void LoadCalibration() { _cal_AC1 = I2CCmd.ReadRegS16(_bmpHandle, ADDR_AC1); _cal_AC2 = I2CCmd.ReadRegS16(_bmpHandle, ADDR_AC2); _cal_AC3 = I2CCmd.ReadRegS16(_bmpHandle, ADDR_AC3); _cal_AC4 = I2CCmd.ReadRegU16(_bmpHandle, ADDR_AC4); _cal_AC5 = I2CCmd.ReadRegU16(_bmpHandle, ADDR_AC5); _cal_AC6 = I2CCmd.ReadRegU16(_bmpHandle, ADDR_AC6); _cal_B1 = I2CCmd.ReadRegS16(_bmpHandle, ADDR_B1); _cal_B2 = I2CCmd.ReadRegS16(_bmpHandle, ADDR_B2); _cal_MB = I2CCmd.ReadRegS16(_bmpHandle, ADDR_MB); _cal_MC = I2CCmd.ReadRegS16(_bmpHandle, ADDR_MC); _cal_MD = I2CCmd.ReadRegS16(_bmpHandle, ADDR_MD); }
public BMPx80(int address = 0x77, SampleCycles cycles = SampleCycles.One) { _overSampleMode = cycles; //bmpMode; //Todo: Do something with this! _bmpHandle = I2CCmd.Setup(address); LoadCalibration(); }