|  | 
| 14 | 14 |     The ADC chips supported by this library do not use negative numbers. If the resulting | 
| 15 | 15 |     differential read is less than 0, then the returned integer value (and voltage value) is ``0``. | 
| 16 | 16 |     If for some reason the voltage on a channel is greater than the reference voltage or | 
| 17 |  | -    less than 0, then the returned integer value is ``65472`` or ``0`` respectively. | 
|  | 17 | +    less than 0, then the returned integer value is ``65535`` or ``0`` respectively. | 
| 18 | 18 | 
 | 
| 19 | 19 | """ | 
| 20 | 20 | 
 | 
| @@ -54,15 +54,16 @@ def __init__( | 
| 54 | 54 | 
 | 
| 55 | 55 |     @property | 
| 56 | 56 |     def value(self) -> int: | 
| 57 |  | -        """Returns the value of an ADC pin as an integer. Due to 10-bit accuracy of the chip, the | 
| 58 |  | -        returned values range [0, 65472].""" | 
| 59 |  | -        return ( | 
| 60 |  | -            self._mcp.read(self._pin_setting, is_differential=self.is_differential) << 6 | 
|  | 57 | +        """Returns the value of an ADC pin as an integer in the range [0, 65535].""" | 
|  | 58 | +        # Initial result is only 10 bits. | 
|  | 59 | +        result = int( | 
|  | 60 | +            self._mcp.read(self._pin_setting, is_differential=self.is_differential) | 
| 61 | 61 |         ) | 
|  | 62 | +        # Stretch to 16 bits and cover full range. | 
|  | 63 | +        return (result << 6) | (result >> 4) | 
| 62 | 64 | 
 | 
| 63 | 65 |     @property | 
| 64 | 66 |     def voltage(self) -> float: | 
| 65 | 67 |         """Returns the voltage from the ADC pin as a floating point value. Due to the 10-bit | 
| 66 |  | -        accuracy of the chip, returned values range from 0 to (``reference_voltage`` * | 
| 67 |  | -        65472 / 65535)""" | 
| 68 |  | -        return (self.value * self._mcp.reference_voltage) / 65535 | 
|  | 68 | +        accuracy of the chip, returned values range from 0 to ``reference_voltage``.""" | 
|  | 69 | +        return self.value * self._mcp.reference_voltage / 65535 | 
0 commit comments