X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/blobdiff_plain/66df9c4b8688960e98e67692074a1d8e4ffb6444..6ed1e2116d59fa76a9819191b3bd84b9bd3d02e7:/src/adafruit_blinka/microcontroller/fake_mcp2221/pin.py diff --git a/src/adafruit_blinka/microcontroller/fake_mcp2221/pin.py b/src/adafruit_blinka/microcontroller/fake_mcp2221/pin.py index e2cb40f..f522a39 100644 --- a/src/adafruit_blinka/microcontroller/fake_mcp2221/pin.py +++ b/src/adafruit_blinka/microcontroller/fake_mcp2221/pin.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: MIT """fake_mcp2221 pin names""" import random -from .fake_mcp2221 import mcp2221 class Pin: @@ -21,28 +20,31 @@ class Pin: def __init__(self, pin_id=None): self.id = pin_id self._mode = None - self._prv_val = None + self._prv_val = False def init(self, mode=IN, pull=None): """Initialize the Pin""" if self.id is None: raise RuntimeError("Can not init a None type pin.") if pull is not None: - raise NotImplementedError("Internal pullups and pulldowns not supported on the MCP2221") + raise NotImplementedError("Internal pullups and pulldowns not supported") if mode in (Pin.IN, Pin.OUT): # All pins can do GPIO - pass + # mcp2221.gp_set_mode(self.id, mcp2221.GP_GPIO) + # mcp2221.gpio_set_direction(self.id, mode) + self._mode = mode elif mode == Pin.ADC: # ADC only available on these pins if self.id not in (1, 2, 3): raise ValueError("Pin does not have ADC capabilities") - pass - # Do nothing + # mcp2221.gp_set_mode(self.id, mcp2221.GP_ALT0) + # mcp2221.adc_configure() elif mode == Pin.DAC: # DAC only available on these pins if self.id not in (2, 3): raise ValueError("Pin does not have DAC capabilities") - pass + # mcp2221.gp_set_mode(self.id, mcp2221.GP_ALT1) + # mcp2221.dac_configure() else: raise ValueError("Incorrect pin mode: {}".format(mode)) self._mode = mode @@ -53,13 +55,8 @@ class Pin: if self._mode in (Pin.IN, Pin.OUT): # digital read if val is None: - # The value returned will toggle between True and False - # and will be True on the first digital read - # TODO: Behavior needs to be tested - if self._prv_val == None or False: - self._prv_val = True - else: - self._prv_val = False + # The returned value toggles between True and false + self._prv_val = not self._prv_val return self._prv_val # digital write if val in (Pin.LOW, Pin.HIGH): @@ -95,4 +92,4 @@ G2 = Pin(2) G3 = Pin(3) SCL = Pin() -SDA = Pin() \ No newline at end of file +SDA = Pin()