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
20 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'")
38 class AnalogOut(ContextManaged):
39 def __init__(self, pin):
40 self._pin = Pin(pin.id)
41 self._pin.init(mode=Pin.DAC)
45 # emulate what CircuitPython does
46 raise AttributeError("unreadable attribute")
49 def value(self, value):
50 self._pin.value(value)