async Task<int> readRawPressure()
{
byte p8;
uint p16;
int p32;
writeCommand(Register.BMP085_REGISTER_CONTROL, Register.BMP085_REGISTER_READPRESSURECMD + (byte)((byte)_bmp085Mode << 6));
switch (_bmp085Mode)
{
case Mode.ULTRALOWPOWER:
await Task.Delay(5);
break;
case Mode.STANDARD:
await Task.Delay(8);
break;
case Mode.HIGHRES:
await Task.Delay(14);
break;
case Mode.ULTRAHIGHRES:
await Task.Delay(26);
break;
}
p16 = read16(Register.BMP085_REGISTER_PRESSUREDATA);
p32 = (int)(p16 << 8);
p8 = read8(Register.BMP085_REGISTER_PRESSUREDATA + 2);
p32 += p8;
p32 >>= (8 - (byte)_bmp085Mode);
return p32;
}