X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/9584ded68bb4b291c0c7aaa99a15b61962f265f3..a3770186a94117be56a8d9a8038a2d540bd2884c:/src/adafruit_blinka/microcontroller/nova/pin.py diff --git a/src/adafruit_blinka/microcontroller/nova/pin.py b/src/adafruit_blinka/microcontroller/nova/pin.py index 320e67b..590ebc6 100644 --- a/src/adafruit_blinka/microcontroller/nova/pin.py +++ b/src/adafruit_blinka/microcontroller/nova/pin.py @@ -1,11 +1,14 @@ +"""Binho Nova pin names""" + + class Pin: """A basic Pin class for use with Binho Nova.""" - IN = 'DIN' - OUT = 'DOUT' - AIN = 'AIN' - AOUT = 'AOUT' - PWM = 'PWM' + IN = "DIN" + OUT = "DOUT" + AIN = "AIN" + AOUT = "AOUT" + PWM = "PWM" LOW = 0 HIGH = 1 @@ -13,14 +16,12 @@ class Pin: def __init__(self, pin_id=None): if not Pin._nova: - from binhoHostAdapter import binhoHostAdapter - from binhoHostAdapter import binhoUtilities + # pylint: disable=import-outside-toplevel + from adafruit_blinka.microcontroller.nova import Connection - utilities = binhoUtilities.binhoUtilities() - devices = utilities.listAvailableDevices() + # pylint: enable=import-outside-toplevel - if len(devices) > 0: - Pin._nova = binhoHostAdapter.binhoHostAdapter(devices[0]) + Pin._nova = Connection.getInstance() # check if pin is valid if pin_id > 4: raise ValueError("Invalid pin {}.".format(pin_id)) @@ -28,24 +29,27 @@ class Pin: self.id = pin_id def init(self, mode=IN, pull=None): + """Initialize the Pin""" if self.id is None: raise RuntimeError("Can not init a None type pin.") - # Nova does't have configurable internal pulls for + # Nova does't have configurable internal pulls for if pull: raise ValueError("Internal pull up/down not currently supported.") Pin._nova.setIOpinMode(self.id, mode) def value(self, val=None): + """Set or return the Pin Value""" if self.id is None: raise RuntimeError("Can not access a None type pin.") # read if val is None: - return int(Pin._nova.getIOpinValue(self.id).split('VALUE ')[1]) + return int(Pin._nova.getIOpinValue(self.id).split("VALUE ")[1]) # write - elif val in (self.LOW, self.HIGH): + if val in (self.LOW, self.HIGH): Pin._nova.setIOpinValue(self.id, val) - else: - raise RuntimeError("Invalid value for pin") + return None + raise RuntimeError("Invalid value for pin") + # create pin instances for each pin IO0 = Pin(0) @@ -54,10 +58,25 @@ IO2 = Pin(2) IO3 = Pin(3) IO4 = Pin(4) +SCL = IO2 +SDA = IO0 +SCK = SCLK = IO3 +MOSI = IO4 +MISO = IO2 +SS0 = IO0 +SS1 = IO1 + PWM0 = IO0 -PWM1 = IO1 +# No PWM support on IO1 PWM2 = IO2 -# No PWM support on IO3 +PWM3 = IO3 PWM4 = IO4 -pwmOuts = ( ((1, 0), PWM0), ((1, 1), PWM1), ((1, 2), PWM2), ((1, 4), PWM4) ) \ No newline at end of file +# orderd as (channel, pin), id +pwmOuts = (((1, 0), PWM0), ((1, 2), PWM2), ((1, 3), PWM3), ((1, 4), PWM4)) + +UART1_TX = IO4 +UART1_RX = IO3 + +# ordered as uartId, txId, rxId +uartPorts = ((0, UART1_TX, UART1_RX),)