2 `analogio` - Analog input and output control
3 =================================================
4 See `CircuitPython:analogio` in CircuitPython for more details.
5 * Author(s): Carter Nelson
8 from adafruit_blinka.agnostic import board_id, detector
10 # pylint: disable=ungrouped-imports,wrong-import-position
12 if detector.board.microchip_mcp2221:
13 from adafruit_blinka.microcontroller.mcp2221.pin import Pin
15 raise NotImplementedError("analogio not supported for this board.")
17 from adafruit_blinka import ContextManaged
19 class AnalogIn(ContextManaged):
21 def __init__(self, pin):
22 self._pin = Pin(pin.id)
23 self._pin.init(mode=Pin.ADC)
27 return self._pin.value()
30 def value(self, value):
31 # emulate what CircuitPython does
32 raise AttributeError("'AnalogIn' object has no attribute 'value'")
37 class AnalogOut(ContextManaged):
38 def __init__(self, pin):
39 self._pin = Pin(pin.id)
40 self._pin.init(mode=Pin.DAC)
44 # emulate what CircuitPython does
45 raise AttributeError("unreadable attribute")
48 def value(self, value):
49 self._pin.value(value)