File tree Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -115,20 +115,25 @@ def readS8(self, reg):
115115 except IOError , err :
116116 return self .errMsg ()
117117
118- def readU16 (self , reg ):
118+ def readU16 (self , reg , little_endian = True ):
119119 "Reads an unsigned 16-bit value from the I2C device"
120120 try :
121121 result = self .bus .read_word_data (self .address ,reg )
122+ # Swap bytes if using big endian because read_word_data assumes little
123+ # endian on ARM (little endian) systems.
124+ if not little_endian :
125+ result = ((result << 8 ) & 0xFF00 ) + (result >> 8 )
122126 if (self .debug ):
123127 print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self .address , result & 0xFFFF , reg )
124128 return result
125129 except IOError , err :
126130 return self .errMsg ()
127131
128- def readS16 (self , reg ):
132+ def readS16 (self , reg , little_endian = True ):
129133 "Reads a signed 16-bit value from the I2C device"
130134 try :
131- result = self .bus .read_word_data (self .address ,reg )
135+ result = self .readU16 (self .address ,reg ,little_endian )
136+ if result > 32767 : result -= 65536
132137 if (self .debug ):
133138 print "I2C: Device 0x%02X returned 0x%04X from reg 0x%02X" % (self .address , result & 0xFFFF , reg )
134139 return result
You can’t perform that action at this time.
0 commit comments