From 84150f912e5e2b51bc1d93e5cfe412abd5c3ec96 Mon Sep 17 00:00:00 2001 From: michael bishop Date: Wed, 24 Jul 2013 16:02:12 -0300 Subject: [PATCH] use the proper function for reading 16 bit values some devices (such as the MPR121 touch sensor) will malfunction if you try to read the 2 bytes separately --- Adafruit_I2C/Adafruit_I2C.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Adafruit_I2C/Adafruit_I2C.py b/Adafruit_I2C/Adafruit_I2C.py index 3423461d..44696cff 100755 --- a/Adafruit_I2C/Adafruit_I2C.py +++ b/Adafruit_I2C/Adafruit_I2C.py @@ -117,9 +117,7 @@ def readS8(self, reg): def readU16(self, reg): "Reads an unsigned 16-bit value from the I2C device" try: - hibyte = self.readU8(reg) - lobyte = self.readU8(reg+1) - result = (hibyte << 8) + lobyte + result = self.bus.read_word_data(self.address,reg) if (self.debug): print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self.address, result & 0xFFFF, reg) return result