//Set sensor resolution /*******************************************************************************************/ //Sets the sensor resolution to one of four levels //Page 12: // 0/0 = 12bit RH, 14bit Temp // 0/1 = 8bit RH, 12bit Temp // 1/0 = 10bit RH, 13bit Temp // 1/1 = 11bit RH, 11bit Temp //Power on default is 0/0 void SetResolution(SensorResolution resolution) { byte userData = si7021.ReadRegister(READ_USER_REGISTER); //Go get the current register state //userRegister &= 0b01111110; //Turn off the resolution bits //resolution &= 0b10000001; //Turn off all other bits but resolution bits //userRegister |= resolution; //Mask in the requested resolution bits var res = (byte)resolution; userData &= 0x73; //Turn off the resolution bits res &= 0x81; //Turn off all other bits but resolution bits userData |= res; //Mask in the requested resolution bits //Request a write to user register si7021.WriteBytes(new byte[] { WRITE_USER_REGISTER }); //Write to the user register si7021.WriteBytes(new byte[] { userData }); //Write the new resolution bits }
//Set sensor resolution /*******************************************************************************************/ //Sets the sensor resolution to one of four levels //Page 12: // 0/0 = 12bit RH, 14bit Temp // 0/1 = 8bit RH, 12bit Temp // 1/0 = 10bit RH, 13bit Temp // 1/1 = 11bit RH, 11bit Temp //Power on default is 0/0 void SetResolution(SensorResolution resolution) { var userData = new byte[0]; htu21d.WriteRead(new byte[] { READ_USER_REGISTER }, userData); //Go get the current register state //userRegister &= 0b01111110; //Turn off the resolution bits //resolution &= 0b10000001; //Turn off all other bits but resolution bits //userRegister |= resolution; //Mask in the requested resolution bits var res = (byte)resolution; userData[0] &= 0x73; //Turn off the resolution bits res &= 0x81; //Turn off all other bits but resolution bits userData[0] |= res; //Mask in the requested resolution bits //Request a write to user register htu21d.Write(new byte[] { WRITE_USER_REGISTER }); //Write to the user register htu21d.Write(userData); //Write the new resolution bits }
private void MeasureDelay(SensorResolution resolution) { Int32 delay; switch (resolution) { case SensorResolution.Resolution_10RH_13T: { delay = 52; break; } case SensorResolution.Resolution_11RH_11T: { delay = 26; break; } case SensorResolution.Resolution_8RH_12T: { delay = 26; break; } case SensorResolution.Resolution_12RH_14T: { delay = 114; break; } default: { delay = 114; break; } } Thread.Sleep(delay); }