No description
Now it's possible to construct outputs or enable pulls immediately: ```py >>> d = digitalio.DigitalInOut(board.A0, pull=digitalio.Pull.UP) >>> d.pull digitalio.Pull.UP ``` ```py >>> d = digitalio.DigitalInOut(board.A0, value=True) >>> d.direction digitalio.Direction.OUTPUT >>> d.value True ``` ```py >>> d = digitalio.DigitalInOut(board.A0, value=False, drive_mode=digitalio.DriveMode.OPEN_DRAIN) >>> d.drive_mode digitalio.DriveMode.OPEN_DRAIN ``` The finaliser means that if a pin object is allowed to go out of scope, then it will be deinitialized automatically when GC runs. **this is a potential incompatibility**: some hypothetical code that intentionally leaked a pin might function differently, i.e. ```py digitalio.DigitalInOut(board.A0).switch_to_output(True) ``` as a way to stick a pin in output mode indefinitely will no longer work (but may still appear to work "for awhile" because gc doesn't run right away). I made this change in part because it simplifies error handling in the constructor: An incorrect argument would otherwise have left the pin stuck in allocated state until the interpreter was reset; with this change, it's available again though not until the GC runs so it would remain perplexing in interactive situations: ```py >>> d = digitalio.DigitalInOut(board.A0, pull=7) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: pull must be of type Pull or None, not int >>> d = digitalio.DigitalInOut(board.A0) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: A0 in use >>> gc.collect() >>> d = digitalio.DigitalInOut(board.A0) >>> d <DigitalInOut> ``` |
||
|---|---|---|
| .codespell | ||
| .devcontainer | ||
| .github | ||
| data | ||
| devices/ble_hci | ||
| docs | ||
| examples | ||
| extmod | ||
| frozen | ||
| lib | ||
| LICENSES | ||
| locale | ||
| logo | ||
| mpy-cross | ||
| ports | ||
| py | ||
| shared | ||
| shared-bindings | ||
| shared-module | ||
| supervisor | ||
| tests | ||
| tools | ||
| .codespellrc | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .mailmap | ||
| .pre-commit-config.yaml | ||
| .readthedocs.yml | ||
| .rosie.yml | ||
| ACKNOWLEDGEMENTS | ||
| ACKNOWLEDGEMENTS.license | ||
| BUILDING.md | ||
| CODE_OF_CONDUCT.md | ||
| conf.py | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| LICENSE_MicroPython | ||
| main.c | ||
| Makefile | ||
| MANIFEST.in-stubs | ||
| pyproject.toml | ||
| README.rst | ||
| README.rst-stubs | ||
| requirements-ci.txt | ||
| requirements-dev.txt | ||
| requirements-doc.txt | ||
| runtime.py | ||
| setup.py-stubs | ||
| WEBUSB_README.md | ||
CircuitPython ============= .. image:: https://s3.amazonaws.com/adafruit-circuit-python/CircuitPython_Repo_header_logo.png |Build Status| |Doc Status| |License| |Discord| |Weblate| `circuitpython.org <https://circuitpython.org>`__ \| `Get CircuitPython <#get-circuitpython>`__ \| `Documentation <#documentation>`__ \| `Contributing <#contributing>`__ \| `Branding <#branding>`__ \| `Differences from Micropython <#differences-from-micropython>`__ \| `Project Structure <#project-structure>`__ **CircuitPython** is a *beginner friendly*, open source version of Python for tiny, inexpensive computers called microcontrollers. This package contains the "stubs", or type definitions for CircuitPython. With some advanced editors and other tools, this information can be identify TypeErrors, AttributeErrors, and other problems before you deploy your code to a device and can even help autocomplete your code. .. |Build Status| image:: https://github.com/adafruit/circuitpython/workflows/Build%20CI/badge.svg :target: https://github.com/adafruit/circuitpython/actions?query=branch%3Amain .. |Doc Status| image:: https://readthedocs.org/projects/circuitpython/badge/?version=latest :target: http://circuitpython.readthedocs.io/ .. |Discord| image:: https://img.shields.io/discord/327254708534116352.svg :target: https://adafru.it/discord .. |License| image:: https://img.shields.io/badge/License-MIT-brightgreen.svg :target: https://choosealicense.com/licenses/mit/ .. |Weblate| image:: https://hosted.weblate.org/widgets/circuitpython/-/svg-badge.svg :target: https://hosted.weblate.org/engage/circuitpython/?utm_source=widget