Skip to content

Commit 19dbc7f

Browse files
author
KTOWN
committed
Reverted to old U16/S16 functions
1 parent 331899c commit 19dbc7f

File tree

1 file changed

+35
-11
lines changed

1 file changed

+35
-11
lines changed

Adafruit_I2C/Adafruit_I2C.py

+35-11
Original file line numberDiff line numberDiff line change
@@ -117,26 +117,50 @@ def readS8(self, reg):
117117
def readU16(self, reg):
118118
"Reads an unsigned 16-bit value from the I2C device"
119119
try:
120-
result = self.bus.read_word_data(self.address, reg)
121-
if self.debug:
122-
print ("I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" %
123-
(self.address, result & 0xFFFF, reg))
120+
hibyte = self.readU8(reg)
121+
lobyte = self.readU8(reg+1)
122+
result = (hibyte << 8) + lobyte
123+
if (self.debug):
124+
print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self.address, result & 0xFFFF, reg)
124125
return result
125126
except IOError, err:
126-
return self.errMsg()
127+
return self.errMsg();
127128

128129
def readS16(self, reg):
129130
"Reads a signed 16-bit value from the I2C device"
130131
try:
131-
result = self.bus.read_word_data(self.address, reg)
132-
if result > 32767: result -= 65536
133-
if self.debug:
134-
print ("I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" %
135-
(self.address, result & 0xFFFF, reg))
132+
hibyte = self.readS8(reg)
133+
lobyte = self.readU8(reg+1)
134+
result = (hibyte << 8) + lobyte
135+
if (self.debug):
136+
print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self.address, result & 0xFFFF, reg)
136137
return result
137138
except IOError, err:
138-
return self.errMsg()
139+
return self.errMsg();
139140

141+
def readU16Rev(self, reg):
142+
"Reads an unsigned 16-bit value from the I2C device with rev byte order"
143+
try:
144+
lobyte = self.readU8(reg)
145+
hibyte = self.readU8(reg+1)
146+
result = (hibyte << 8) + lobyte
147+
if (self.debug):
148+
print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self.address, result & 0xFFFF, reg)
149+
return result
150+
except IOError, err:
151+
return self.errMsg();
152+
153+
def readS16Rev(self, reg):
154+
"Reads a signed 16-bit value from the I2C device with rev byte order"
155+
try:
156+
lobyte = self.readS8(reg)
157+
hibyte = self.readU8(reg+1)
158+
result = (hibyte << 8) + lobyte
159+
if (self.debug):
160+
print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self.address, result & 0xFFFF, reg)
161+
return result
162+
except IOError, err:
163+
return self.errMsg();
140164

141165
if __name__ == '__main__':
142166
try:

0 commit comments

Comments
 (0)