Skip to content

Commit 617151c

Browse files
authored
Merge pull request #47 from makermelissa/master
Increase read delay to fix occasional bad reads
2 parents dc01285 + 5f9a2b1 commit 617151c

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

adafruit_seesaw/seesaw.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,18 +204,18 @@ def digital_read(self, pin):
204204
return self.digital_read_bulk_b((1 << (pin - 32))) != 0
205205
return self.digital_read_bulk((1 << pin)) != 0
206206

207-
def digital_read_bulk(self, pins):
207+
def digital_read_bulk(self, pins, delay=0.008):
208208
"""Get the values of all the pins on the 'A' port as a bitmask"""
209209
buf = bytearray(4)
210-
self.read(_GPIO_BASE, _GPIO_BULK, buf)
210+
self.read(_GPIO_BASE, _GPIO_BULK, buf, delay=delay)
211211
buf[0] = buf[0] & 0x3F
212212
ret = struct.unpack(">I", buf)[0]
213213
return ret & pins
214214

215-
def digital_read_bulk_b(self, pins):
215+
def digital_read_bulk_b(self, pins, delay=0.008):
216216
"""Get the values of all the pins on the 'B' port as a bitmask"""
217217
buf = bytearray(8)
218-
self.read(_GPIO_BASE, _GPIO_BULK, buf)
218+
self.read(_GPIO_BASE, _GPIO_BULK, buf, delay=delay)
219219
ret = struct.unpack(">I", buf[4:])[0]
220220
return ret & pins
221221

@@ -405,7 +405,7 @@ def read8(self, reg_base, reg):
405405
self.read(reg_base, reg, ret)
406406
return ret[0]
407407

408-
def read(self, reg_base, reg, buf, delay=.005):
408+
def read(self, reg_base, reg, buf, delay=.008):
409409
"""Read an arbitrary I2C register range on the device"""
410410
self.write(reg_base, reg)
411411
if self._drdy is not None:

0 commit comments

Comments
 (0)