From: brentru Date: Mon, 20 May 2024 20:30:07 +0000 (-0400) Subject: tests for dig in, an in, an out, dig out all passing X-Git-Tag: 8.39.2^2~10 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/e581ddf6e329e49b0c7c48c3c0ac967aa6a30571 tests for dig in, an in, an out, dig out all passing --- diff --git a/examples/generic_aio.py b/examples/generic_aio.py index aa1df37..9a8cf77 100644 --- a/examples/generic_aio.py +++ b/examples/generic_aio.py @@ -2,6 +2,23 @@ import pytest import board import analogio +# Analog Outputs + +def test_Ax_OUTPUT(): + """Test analog output pin functionality.""" + assert board.board_id == "GENERIC_AGNOSTIC_BOARD" + pin_out = analogio.AnalogOut(board.Ax_OUTPUT) + + # Test boundaries of setting the value and reading it back + pin_out.value = 0 + assert pin_out.value == 0 + pin_out.value = 65535 + assert pin_out.value == 65535 + + pin_out.deinit() + +# Analog Inputs + # Values for sine wave # (data points = 20, amplitude=100, frequency=1) sine_wave = [ @@ -52,7 +69,6 @@ sawtooth_wave = [ 80, ] - def test_Ax_INPUT_RAND_INT(): """Test random integer from pin Ax_INPUT_RAND_INT""" assert board.board_id == "GENERIC_AGNOSTIC_BOARD" diff --git a/src/adafruit_blinka/board/generic_agnostic_board.py b/src/adafruit_blinka/board/generic_agnostic_board.py index 4530b60..925e7ba 100644 --- a/src/adafruit_blinka/board/generic_agnostic_board.py +++ b/src/adafruit_blinka/board/generic_agnostic_board.py @@ -20,6 +20,7 @@ Ax_INPUT_RAND_INT = pin.A0 Ax_INPUT_FIXED_INT_PI = pin.A1 Ax_INPUT_WAVE_SINE = pin.A2 Ax_INPUT_WAVE_SAW = pin.A3 +Ax_OUTPUT = pin.A4 # I2C pins SDA = pin.SDA diff --git a/src/adafruit_blinka/microcontroller/generic_agnostic_board/analogio.py b/src/adafruit_blinka/microcontroller/generic_agnostic_board/analogio.py index 52aea10..cdaa188 100644 --- a/src/adafruit_blinka/microcontroller/generic_agnostic_board/analogio.py +++ b/src/adafruit_blinka/microcontroller/generic_agnostic_board/analogio.py @@ -45,9 +45,8 @@ class AnalogOut(ContextManaged): @property def value(self): - """Return an error. This is output only.""" - # emulate what CircuitPython does - raise AttributeError("unreadable attribute") + """Fake the output.""" + return self._pin.value() @value.setter def value(self, value): diff --git a/src/adafruit_blinka/microcontroller/generic_agnostic_board/pin.py b/src/adafruit_blinka/microcontroller/generic_agnostic_board/pin.py index b04e71d..c527759 100644 --- a/src/adafruit_blinka/microcontroller/generic_agnostic_board/pin.py +++ b/src/adafruit_blinka/microcontroller/generic_agnostic_board/pin.py @@ -178,8 +178,8 @@ class Pin: # Analog Out if self._mode == Pin.DAC: if val is None: - # write only - raise AttributeError("unreadable attribute") + self.previous_value = self.current_value + return self.current_value self.write(val) return None raise RuntimeError( @@ -200,6 +200,7 @@ A0 = Pin(7) A1 = Pin(8) A2 = Pin(9) A3 = Pin(10) +A4 = Pin(12) D7 = Pin(11)