X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/e7fee263ecca5ed166b9d3cef21c366d7c665b9f..8bc681c3c82463095455e73e690156bf3a323821:/src/adafruit_blinka/microcontroller/raspi_23/i2c.py diff --git a/src/adafruit_blinka/microcontroller/raspi_23/i2c.py b/src/adafruit_blinka/microcontroller/raspi_23/i2c.py index a4647b6..edac8db 100644 --- a/src/adafruit_blinka/microcontroller/raspi_23/i2c.py +++ b/src/adafruit_blinka/microcontroller/raspi_23/i2c.py @@ -1,4 +1,4 @@ -import smbus +import Adafruit_PureIO.smbus as smbus import time class I2C: @@ -13,8 +13,8 @@ class I2C: raise NotImplementedError("Only I2C Master supported!") _mode = self.MASTER - if baudrate != None: - print("I2C frequency is not settable in python, ignoring!") + #if baudrate != None: + # print("I2C frequency is not settable in python, ignoring!") try: self._i2c_bus = smbus.SMBus(bus_num) @@ -22,11 +22,20 @@ class I2C: raise RuntimeError("I2C Bus #%d not found, check if enabled in config!" % bus_num) def scan(self): + """Try to read a byte from each address, if you get an OSError it means the device isnt there""" found = [] - for addr in range(0,0x7F): + for addr in range(0,0x80): try: self._i2c_bus.read_byte(addr) except OSError: continue found.append(addr) return found + + def writeto(self, address, buffer, stop=True): + self._i2c_bus.write_bytes(address, buffer) + + def readfrom_into(self, address, buffer, stop=True): + readin = self._i2c_bus.read_bytes(address, len(buffer)) + for i in range(len(buffer)): + buffer[i] = readin[i]