Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        private int ReadRawTemp()
        {
            int raw;

            I2CCmd.WriteReg8(_bmpHandle, ADDR_CONTROL, CMD_READ_TEMP);
            Thread.Sleep(50);
            raw = I2CCmd.ReadRegU16(_bmpHandle, ADDR_TEMP);

            return(raw);
        }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
 public BMPx80(int address = 0x77, SampleCycles cycles = SampleCycles.One)
 {
     _overSampleMode = cycles;             //bmpMode; //Todo: Do something with this!
     _bmpHandle      = I2CCmd.Setup(address);
     LoadCalibration();
 }