<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def pressure(self):
 """ The compensated pressure in hectoPascals. returns None if pressure measurement is disabled """

        self._read_temperature()

        # Algorithm from the BME280 driver
        # https://github.com/BoschSensortec/BME280_driver/blob/master/bme280.c
        adc = self._read24(_BME280_REGISTER_PRESSUREDATA) / 16  # lowest 4 bits get dropped
        var1 = float(self._t_fine) / 2.0 - 64000.0
        var2 = var1 * var1 * self._pressure_calib[5] / 32768.0
        var2 = var2 + var1 * self._pressure_calib[4] * 2.0
        var2 = var2 / 4.0 + self._pressure_calib[3] * 65536.0
        var3 = self._pressure_calib[2] * var1 * var1 / 524288.0
        var1 = (var3 + self._pressure_calib[1] * var1) / 524288.0
        var1 = (1.0 + var1 / 32768.0) * self._pressure_calib[0]
        if var1 == 0:
            return 0
        if var1:
            pressure = 1048576.0 - adc
            pressure = ((pressure - var2 / 4096.0) * 6250.0) / var1
            var1 = self._pressure_calib[8] * pressure * pressure / 2147483648.0
            var2 = pressure * self._pressure_calib[7] / 32768.0
            pressure = pressure + (var1 + var2 + self._pressure_calib[6]) / 16.0

            pressure /= 100
            if pressure < _BME280_PRESSURE_MIN_HPA:
                return _BME280_PRESSURE_MIN_HPA
            if pressure > _BME280_PRESSURE_MAX_HPA:
                return _BME280_PRESSURE_MAX_HPA
            return pressure
        else:
            return _BME280_PRESSURE_MIN_HPA