Skip to content
This repository was archived by the owner on Sep 30, 2019. It is now read-only.

Commit 7e950cf

Browse files
author
KTOWN
committedSep 2, 2013
Updated 16 bit reads to local functions
1 parent 339d4b3 commit 7e950cf

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed
 

‎Adafruit_BMP085/Adafruit_BMP085.py

+24-12
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,31 @@ def __init__(self, address=0x77, mode=1, debug=False):
6363
# Read the calibration data
6464
self.readCalibrationData()
6565

66+
def readS16(self, register):
67+
"Reads a signed 16-bit value"
68+
hi = self.i2c.readS8(register)
69+
lo = self.i2c.readU8(register+1)
70+
return (hi << 8) + lo
71+
72+
def readU16(self, register):
73+
"Reads an unsigned 16-bit value"
74+
hi = self.i2c.readU8(register)
75+
lo = self.i2c.readU8(register+1)
76+
return (hi << 8) + lo
77+
6678
def readCalibrationData(self):
6779
"Reads the calibration data from the IC"
68-
self._cal_AC1 = self.i2c.readS16(self.__BMP085_CAL_AC1) # INT16
69-
self._cal_AC2 = self.i2c.readS16(self.__BMP085_CAL_AC2) # INT16
70-
self._cal_AC3 = self.i2c.readS16(self.__BMP085_CAL_AC3) # INT16
71-
self._cal_AC4 = self.i2c.readU16(self.__BMP085_CAL_AC4) # UINT16
72-
self._cal_AC5 = self.i2c.readU16(self.__BMP085_CAL_AC5) # UINT16
73-
self._cal_AC6 = self.i2c.readU16(self.__BMP085_CAL_AC6) # UINT16
74-
self._cal_B1 = self.i2c.readS16(self.__BMP085_CAL_B1) # INT16
75-
self._cal_B2 = self.i2c.readS16(self.__BMP085_CAL_B2) # INT16
76-
self._cal_MB = self.i2c.readS16(self.__BMP085_CAL_MB) # INT16
77-
self._cal_MC = self.i2c.readS16(self.__BMP085_CAL_MC) # INT16
78-
self._cal_MD = self.i2c.readS16(self.__BMP085_CAL_MD) # INT16
80+
self._cal_AC1 = self.readS16(self.__BMP085_CAL_AC1) # INT16
81+
self._cal_AC2 = self.readS16(self.__BMP085_CAL_AC2) # INT16
82+
self._cal_AC3 = self.readS16(self.__BMP085_CAL_AC3) # INT16
83+
self._cal_AC4 = self.readU16(self.__BMP085_CAL_AC4) # UINT16
84+
self._cal_AC5 = self.readU16(self.__BMP085_CAL_AC5) # UINT16
85+
self._cal_AC6 = self.readU16(self.__BMP085_CAL_AC6) # UINT16
86+
self._cal_B1 = self.readS16(self.__BMP085_CAL_B1) # INT16
87+
self._cal_B2 = self.readS16(self.__BMP085_CAL_B2) # INT16
88+
self._cal_MB = self.readS16(self.__BMP085_CAL_MB) # INT16
89+
self._cal_MC = self.readS16(self.__BMP085_CAL_MC) # INT16
90+
self._cal_MD = self.readS16(self.__BMP085_CAL_MD) # INT16
7991
if (self.debug):
8092
self.showCalibrationData()
8193

@@ -97,7 +109,7 @@ def readRawTemp(self):
97109
"Reads the raw (uncompensated) temperature from the sensor"
98110
self.i2c.write8(self.__BMP085_CONTROL, self.__BMP085_READTEMPCMD)
99111
time.sleep(0.005) # Wait 5ms
100-
raw = self.i2c.readU16(self.__BMP085_TEMPDATA)
112+
raw = self.readU16(self.__BMP085_TEMPDATA)
101113
if (self.debug):
102114
print "DBG: Raw Temp: 0x%04X (%d)" % (raw & 0xFFFF, raw)
103115
return raw

0 commit comments

Comments
 (0)
This repository has been archived.