Merge remote-tracking branch 'upstream/main' into esp32s2-udp
This commit is contained in:
commit
21ca1b8c2b
13
.github/workflows/build.yml
vendored
13
.github/workflows/build.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get install -y eatmydata
|
||||
sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64 latexmk texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra
|
||||
pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid isort black awscli
|
||||
pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml astroid isort black awscli mypy
|
||||
- name: Versions
|
||||
run: |
|
||||
gcc --version
|
||||
@ -67,8 +67,8 @@ jobs:
|
||||
- name: mpy Tests
|
||||
run: MICROPY_CPYTHON3=python3.8 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -j1 --via-mpy -d basics float
|
||||
working-directory: tests
|
||||
- name: Stubs
|
||||
run: make stubs -j2
|
||||
- name: Build and Validate Stubs
|
||||
run: make check-stubs -j2
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: stubs
|
||||
@ -111,11 +111,13 @@ jobs:
|
||||
with:
|
||||
name: mpy-cross.static-x64-windows
|
||||
path: mpy-cross/mpy-cross.static.exe
|
||||
- name: Upload mpy-cross builds to S3
|
||||
- name: Upload stubs and mpy-cross builds to S3
|
||||
run: |
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static-raspbian s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-raspbian-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-amd64-linux-${{ env.CP_VERSION }} --no-progress --region us-east-1
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross.static.exe s3://adafruit-circuit-python/bin/mpy-cross/mpy-cross.static-x64-windows-${{ env.CP_VERSION }}.exe --no-progress --region us-east-1
|
||||
zip -9r circuitpython-stubs.zip circuitpython-stubs
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp circuitpython-stubs.zip s3://adafruit-circuit-python/bin/stubs/circuitpython-stubs-${{ env.CP_VERSION }}.zip --no-progress --region us-east-1
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
@ -170,6 +172,7 @@ jobs:
|
||||
matrix:
|
||||
board:
|
||||
- "8086_commander"
|
||||
- "ADM_B_NRF52840_1"
|
||||
- "TG-Watch02A"
|
||||
- "aloriumtech_evo_m51"
|
||||
- "aramcon_badge_2019"
|
||||
@ -418,7 +421,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
board:
|
||||
- "adafruit_esp32s2_eink_portal"
|
||||
- "adafruit_magtag_2.9_grayscale"
|
||||
- "adafruit_metro_esp32s2"
|
||||
- "electroniccats_bastwifi"
|
||||
- "espressif_kaluga_1"
|
||||
|
@ -6,7 +6,7 @@ SPDX-License-Identifier: MIT
|
||||
|
||||
# Contributing
|
||||
Please note that this project is released with a
|
||||
[Contributor Code of Conduct](https://github.com/adafruit/circuitpython/blob/main/CODE_OF_CONDUCT.md).
|
||||
[Contributor Code of Conduct](CODE_OF_CONDUCT.md).
|
||||
By participating in this project you agree to abide by its terms. Participation
|
||||
covers any forum used to converse about CircuitPython including unofficial and official spaces. Failure to do
|
||||
so will result in corrective actions such as time out or ban from the project.
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-10-10 23:51+0000\n"
|
||||
"Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -300,6 +300,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Semua perangkat I2C sedang digunakan"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1130,7 +1134,8 @@ msgid "Invalid phase"
|
||||
msgstr "Fase tidak valid"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Pin tidak valid"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -296,6 +296,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1109,7 +1113,8 @@ msgid "Invalid phase"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr ""
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-05-24 03:22+0000\n"
|
||||
"Last-Translator: dronecz <mzuzelka@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -300,6 +300,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1113,7 +1117,8 @@ msgid "Invalid phase"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr ""
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-06-16 18:24+0000\n"
|
||||
"Last-Translator: Andreas Buchen <andreas.buchen@gmail.com>\n"
|
||||
"Language: de_DE\n"
|
||||
@ -299,6 +299,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Alle I2C-Peripheriegeräte sind in Benutzung"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1130,7 +1134,8 @@ msgid "Invalid phase"
|
||||
msgstr "Ungültige Phase"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Ungültiger Pin"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@ -295,6 +295,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1108,7 +1112,8 @@ msgid "Invalid phase"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr ""
|
||||
|
17
locale/es.po
17
locale/es.po
@ -7,9 +7,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-10-27 21:01+0000\n"
|
||||
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-11-01 16:26+0000\n"
|
||||
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -297,12 +297,16 @@ msgstr "Tipo de dirección fuera de rango"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
msgstr "Todos los periféricos CAN están en uso"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Todos los periféricos I2C están siendo usados"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -427,7 +431,7 @@ msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
msgstr "El periférico no maneja el Baudrate"
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1131,7 +1135,8 @@ msgid "Invalid phase"
|
||||
msgstr "Fase inválida"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Pin inválido"
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||
"Language-Team: fil\n"
|
||||
@ -297,6 +297,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Lahat ng I2C peripherals ginagamit"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1123,7 +1127,8 @@ msgid "Invalid phase"
|
||||
msgstr "Mali ang phase"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Mali ang pin"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-10-22 20:48+0000\n"
|
||||
"Last-Translator: Antonin ENFRUN <antonin.e@me.com>\n"
|
||||
"Language: fr\n"
|
||||
@ -304,6 +304,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Tous les périphériques I2C sont utilisés"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1136,7 +1140,8 @@ msgid "Invalid phase"
|
||||
msgstr "Phase invalide"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Broche invalide"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@ -295,6 +295,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1108,7 +1112,8 @@ msgid "Invalid phase"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr ""
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -296,6 +296,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Tutte le periferiche I2C sono in uso"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1125,7 +1129,8 @@ msgid "Invalid phase"
|
||||
msgstr "Fase non valida"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Pin non valido"
|
||||
|
47
locale/ja.po
47
locale/ja.po
@ -7,16 +7,16 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-09-25 18:20+0000\n"
|
||||
"Last-Translator: Taku Fukada <naninunenor@gmail.com>\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-11-06 20:29+0000\n"
|
||||
"Last-Translator: sporeball <sporeballdev@gmail.com>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 4.3-dev\n"
|
||||
"X-Generator: Weblate 4.3.2\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -162,12 +162,12 @@ msgstr "'%s' にはラベルが必要"
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
#, c-format
|
||||
msgid "'%s' expects a register"
|
||||
msgstr ""
|
||||
msgstr "'%s'にはレジスタが必要"
|
||||
|
||||
#: py/emitinlinethumb.c
|
||||
#, c-format
|
||||
msgid "'%s' expects a special register"
|
||||
msgstr ""
|
||||
msgstr "'%s'には特別レジスタが必要"
|
||||
|
||||
#: py/emitinlinethumb.c
|
||||
#, c-format
|
||||
@ -192,7 +192,7 @@ msgstr ""
|
||||
#: py/emitinlinethumb.c
|
||||
#, c-format
|
||||
msgid "'%s' expects {r0, r1, ...}"
|
||||
msgstr ""
|
||||
msgstr "'%s'には{r0, r1, ...}が必要"
|
||||
|
||||
#: py/emitinlinextensa.c
|
||||
#, c-format
|
||||
@ -246,7 +246,7 @@ msgstr "'data'には整数の引数が必要"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'label' requires 1 argument"
|
||||
msgstr ""
|
||||
msgstr "'label'には1つの引数が必要"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'return' outside function"
|
||||
@ -296,12 +296,16 @@ msgstr "address_typeが範囲外"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
msgstr "全てのCAN周辺機器が使用中"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "全てのI2C周辺機器が使用中"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -821,19 +825,19 @@ msgstr "%qが必要"
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
#: shared-bindings/_bleio/Descriptor.c shared-bindings/_bleio/PacketBuffer.c
|
||||
msgid "Expected a Characteristic"
|
||||
msgstr ""
|
||||
msgstr "Characteristicが必要"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Expected a DigitalInOut"
|
||||
msgstr ""
|
||||
msgstr "DigitalInOutが必要"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c
|
||||
msgid "Expected a Service"
|
||||
msgstr ""
|
||||
msgstr "Serviceが必要"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Expected a UART"
|
||||
msgstr ""
|
||||
msgstr "UARTが必要"
|
||||
|
||||
#: shared-bindings/_bleio/Characteristic.c shared-bindings/_bleio/Descriptor.c
|
||||
#: shared-bindings/_bleio/Service.c
|
||||
@ -842,7 +846,7 @@ msgstr "UUIDが必要"
|
||||
|
||||
#: shared-bindings/_bleio/Adapter.c
|
||||
msgid "Expected an Address"
|
||||
msgstr ""
|
||||
msgstr "Addressが必要"
|
||||
|
||||
#: shared-module/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
@ -886,7 +890,7 @@ msgstr "%dバイトのRXバッファの確保に失敗"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Failed to allocate Wifi memory"
|
||||
msgstr ""
|
||||
msgstr "Wi-Fiのメモリの確保に失敗"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/ScannedNetworks.c
|
||||
msgid "Failed to allocate wifi scan memory"
|
||||
@ -1052,7 +1056,7 @@ msgstr "不正なBMPファイル"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Invalid BSSID"
|
||||
msgstr ""
|
||||
msgstr "不正なBSSID"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogOut.c
|
||||
#: ports/stm/common-hal/analogio/AnalogOut.c
|
||||
@ -1103,7 +1107,7 @@ msgstr "フォーマットチャンクのサイズが不正"
|
||||
|
||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
msgid "Invalid frequency"
|
||||
msgstr ""
|
||||
msgstr "不正な周波数"
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "Invalid frequency supplied"
|
||||
@ -1123,7 +1127,8 @@ msgid "Invalid phase"
|
||||
msgstr "不正なphase"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "不正なピン"
|
||||
@ -1338,11 +1343,11 @@ msgstr "long integerに対応していません"
|
||||
|
||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
msgid "No more channels available"
|
||||
msgstr ""
|
||||
msgstr "使えるチャネルがもうありません"
|
||||
|
||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||
msgid "No more timers available"
|
||||
msgstr ""
|
||||
msgstr "使えるタイマーがもうありません"
|
||||
|
||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||
msgid "No more timers available on this pin."
|
||||
@ -1658,7 +1663,7 @@ msgstr ""
|
||||
|
||||
#: ports/cxd56/common-hal/camera/Camera.c
|
||||
msgid "Size not supported"
|
||||
msgstr ""
|
||||
msgstr "サイズは対応していません"
|
||||
|
||||
#: shared-bindings/nvm/ByteArray.c
|
||||
msgid "Slice and value different lengths."
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-10-05 12:12+0000\n"
|
||||
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -298,6 +298,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "사용중인 모든 I2C주변 기기"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1113,7 +1117,8 @@ msgid "Invalid phase"
|
||||
msgstr "단계가 잘못되었습니다"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "핀이 잘못되었습니다"
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-10-27 16:47+0000\n"
|
||||
"Last-Translator: Jelle Jager <jell@jjc.id.au>\n"
|
||||
"Language-Team: none\n"
|
||||
@ -300,6 +300,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Alle I2C peripherals zijn in gebruik"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1125,7 +1129,8 @@ msgid "Invalid phase"
|
||||
msgstr "Ongeldige fase"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Ongeldige pin"
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-09-29 01:39+0000\n"
|
||||
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
|
||||
"Language-Team: pl\n"
|
||||
@ -302,6 +302,10 @@ msgstr ""
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Wszystkie peryferia I2C w użyciu"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1123,7 +1127,8 @@ msgid "Invalid phase"
|
||||
msgstr "Zła faza"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Zła nóżka"
|
||||
|
@ -5,8 +5,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-10-28 21:45+0000\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-11-08 10:26+0000\n"
|
||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: pt_BR\n"
|
||||
@ -14,7 +14,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
"X-Generator: Weblate 4.3.2\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -304,6 +304,10 @@ msgstr "Todos os periféricos CAN estão em uso"
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Todos os periféricos I2C estão em uso"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr "Todas as unidades PCNT estão em uso"
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1134,7 +1138,8 @@ msgid "Invalid phase"
|
||||
msgstr "Fase Inválida"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Pino inválido"
|
||||
|
35
locale/sv.po
35
locale/sv.po
@ -5,8 +5,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"PO-Revision-Date: 2020-10-26 02:36+0000\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-11-05 20:26+0000\n"
|
||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sv\n"
|
||||
@ -14,7 +14,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.3.2-dev\n"
|
||||
"X-Generator: Weblate 4.3.2\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -294,12 +294,16 @@ msgstr "Adresstyp utanför intervallet"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
msgstr "All I2C-kringutrustning används"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "All I2C-kringutrustning används"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -415,12 +419,12 @@ msgid ""
|
||||
"Auto-reload is on. Simply save files over USB to run them or enter REPL to "
|
||||
"disable.\n"
|
||||
msgstr ""
|
||||
"Autoladdning är på. Spara bara filer via USB för att köra dem eller ange "
|
||||
"REPL för att inaktivera.\n"
|
||||
"Autoladdning är på. Spara filer via USB för att köra dem eller ange REPL för "
|
||||
"att inaktivera.\n"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
msgstr "Baudrate stöds inte av kringutrustning"
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1123,7 +1127,8 @@ msgid "Invalid phase"
|
||||
msgstr "Ogiltig fas"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Ogiltig pinne"
|
||||
@ -2220,7 +2225,7 @@ msgstr "kan bara ha upp till 4 parametrar att Xtensa assembly"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "can only save bytecode"
|
||||
msgstr "kan bara spara bytekod"
|
||||
msgstr "kan bara spara bytecode"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "can't add special method to already-subclassed class"
|
||||
@ -2905,7 +2910,7 @@ msgstr "long int stöds inte i denna build"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "loopback + silent mode not supported by peripheral"
|
||||
msgstr ""
|
||||
msgstr "loopback + tyst läge stöds inte av kringutrustning"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "malformed f-string"
|
||||
@ -2943,11 +2948,11 @@ msgstr "maximal rekursionsdjup överskriden"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter must be > 0"
|
||||
msgstr ""
|
||||
msgstr "maxiter måste vara > 0"
|
||||
|
||||
#: extmod/ulab/code/approx/approx.c
|
||||
msgid "maxiter should be > 0"
|
||||
msgstr ""
|
||||
msgstr "maxiter bör vara > 0"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
@ -3388,7 +3393,7 @@ msgstr "argumentet sort måste vara en ndarray"
|
||||
|
||||
#: extmod/ulab/code/numerical/numerical.c
|
||||
msgid "sorted axis can't be longer than 65535"
|
||||
msgstr ""
|
||||
msgstr "sorterad axel kan inte vara längre än 65535"
|
||||
|
||||
#: extmod/ulab/code/filter/filter.c
|
||||
msgid "sos array must be of shape (n_section, 6)"
|
||||
@ -3522,12 +3527,12 @@ msgstr "tupel/lista har fel längd"
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_driver_install returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
msgstr "twai_driver_install returnerade esp-idf-fel #%d"
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
#, c-format
|
||||
msgid "twai_start returned esp-idf error #%d"
|
||||
msgstr ""
|
||||
msgstr "twai_start returnerade esp-idf-fel #%d"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: circuitpython-cn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-10-21 20:13-0500\n"
|
||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||
"PO-Revision-Date: 2020-10-28 21:45+0000\n"
|
||||
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
@ -302,6 +302,10 @@ msgstr "suǒ yǒu CAN wài shè dōu zài shǐ yòng zhōng"
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr "Suǒyǒu I2C wàiwéi qì zhèngzài shǐyòng"
|
||||
|
||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||
msgid "All PCNT units in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||
#: ports/stm/common-hal/canio/Listener.c
|
||||
@ -1121,7 +1125,8 @@ msgid "Invalid phase"
|
||||
msgstr "Jiēduàn wúxiào"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: ports/atmel-samd/common-hal/touchio/TouchIn.c
|
||||
#: ports/esp32s2/common-hal/touchio/TouchIn.c shared-bindings/pwmio/PWMOut.c
|
||||
#: shared-module/rgbmatrix/RGBMatrix.c
|
||||
msgid "Invalid pin"
|
||||
msgstr "Wúxiào de yǐn jiǎo"
|
||||
|
4
main.c
4
main.c
@ -234,10 +234,12 @@ void cleanup_after_vm(supervisor_allocation* heap) {
|
||||
common_hal_canio_reset();
|
||||
#endif
|
||||
|
||||
reset_port();
|
||||
// reset_board_busses() first because it may release pins from the never_reset state, so that
|
||||
// reset_port() can reset them.
|
||||
#if CIRCUITPY_BOARD
|
||||
reset_board_busses();
|
||||
#endif
|
||||
reset_port();
|
||||
reset_board();
|
||||
reset_status_led();
|
||||
}
|
||||
|
@ -12,14 +12,14 @@
|
||||
|
||||
#define BOARD_HAS_CRYSTAL 1
|
||||
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PB02)
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PB03)
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PA16)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PA17)
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB20)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB21)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PB23)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB24)
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB25)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PC27)
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PC28)
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA15)
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA23)
|
||||
#define MICROPY_HW_LED_RX (&pin_PC05)
|
||||
#define MICROPY_HW_LED_TX (&pin_PC06)
|
||||
|
||||
|
@ -1,64 +1,70 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A10), MP_ROM_PTR(&pin_PC00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A11), MP_ROM_PTR(&pin_PC01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PB00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PB06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PB07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PC10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PC11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PC20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PC21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A10), MP_ROM_PTR(&pin_PB07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A11), MP_ROM_PTR(&pin_PC00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PC02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PC03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PB05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PB06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PC16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PC13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PB12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PB13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PC17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PC18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PC19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PC20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PC21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PB19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PC12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC0), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_EN), MP_ROM_PTR(&pin_PC03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_EN), MP_ROM_PTR(&pin_PC15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E5), MP_ROM_PTR(&pin_PC15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_GPIO0), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_RTS), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E3), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_GPIO2), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_CTS), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_RESET), MP_ROM_PTR(&pin_PC02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_RX), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_RX), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_TX), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_TX), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_SCL), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_SDA), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E4), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_RESET), MP_ROM_PTR(&pin_PC14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E6), MP_ROM_PTR(&pin_PC14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_RX), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_RX), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C3_SCL), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E2), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_ESP01_TX), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART3_TX), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C3_SDA), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_E1), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C1_SCL), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C1_SDA), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_FS_0), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_FS_1), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_MCK_0), MP_ROM_PTR(&pin_PB17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_MCK_1), MP_ROM_PTR(&pin_PB13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK_0), MP_ROM_PTR(&pin_PB16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_SCK_1), MP_ROM_PTR(&pin_PB12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_SDI), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_SDO), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_STATUS), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_PTR(&pin_PB18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_PTR(&pin_PB19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_STATUS), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_PTR(&pin_PB15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_RX), MP_ROM_PTR(&pin_PC05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED_TX), MP_ROM_PTR(&pin_PC06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_RE), MP_ROM_PTR(&pin_PC15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_RX), MP_ROM_PTR(&pin_PC13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_TE), MP_ROM_PTR(&pin_PC14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_TX), MP_ROM_PTR(&pin_PC12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_RE), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_RX), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_TE), MP_ROM_PTR(&pin_PB00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RS485_TX), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_MISO), MP_ROM_PTR(&pin_PB23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_MOSI), MP_ROM_PTR(&pin_PC27) },
|
||||
@ -67,14 +73,16 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PC28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_SS), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_CTS), MP_ROM_PTR(&pin_PC19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_RTS), MP_ROM_PTR(&pin_PC18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_RX), MP_ROM_PTR(&pin_PC17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_TX), MP_ROM_PTR(&pin_PC16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART2_RX), MP_ROM_PTR(&pin_PB25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART2_TX), MP_ROM_PTR(&pin_PB24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_CTS), MP_ROM_PTR(&pin_PC25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_RTS), MP_ROM_PTR(&pin_PC24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_RX), MP_ROM_PTR(&pin_PB24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART1_TX), MP_ROM_PTR(&pin_PB25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART2_RX), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C2_SCL), MP_ROM_PTR(&pin_PB20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART2_TX), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C2_SDA), MP_ROM_PTR(&pin_PB21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
@ -12,7 +12,7 @@ CIRCUITPY_FULL_BUILD = 0
|
||||
|
||||
# A number of modules are removed for RFM69 to make room for frozen libraries.
|
||||
# Many I/O functions are not available.
|
||||
CIRCUITPY_ANALOGIO = 0
|
||||
CIRCUITPY_ANALOGIO = 1
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
|
@ -13,7 +13,7 @@ CIRCUITPY_FULL_BUILD = 0
|
||||
|
||||
# A number of modules are removed for RFM9x to make room for frozen libraries.
|
||||
# Many I/O functions are not available.
|
||||
CIRCUITPY_ANALOGIO = 0
|
||||
CIRCUITPY_ANALOGIO = 1
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
|
@ -36,6 +36,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA18) },
|
||||
@ -45,14 +46,17 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA23) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_PB03) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PB00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PB00) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOST_ENABLE), MP_ROM_PTR(&pin_PB13) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_RX), MP_ROM_PTR(&pin_PB15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_TX), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_STANDBY), MP_ROM_PTR(&pin_PB13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_STANDBY), MP_ROM_PTR(&pin_PB12) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
|
@ -16,8 +16,8 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_BUSY), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RESET), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RTS), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_TX), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RX), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_TX), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RX), MP_ROM_PTR(&pin_PA12) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL),MP_ROM_PTR(&pin_PB30) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA),MP_ROM_PTR(&pin_PB31) },
|
||||
|
@ -16,8 +16,6 @@
|
||||
|
||||
#define IGNORE_PIN_PA27 1
|
||||
#define IGNORE_PIN_PA28 1
|
||||
#define IGNORE_PIN_PA30 1
|
||||
#define IGNORE_PIN_PA31 1
|
||||
|
||||
#define IGNORE_PIN_PB01 1
|
||||
#define IGNORE_PIN_PB02 1
|
||||
|
@ -1,14 +1,18 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BOOST_EN), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_VEXT_SELECT), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA10) },
|
||||
@ -19,8 +23,10 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
|
||||
|
@ -47,6 +47,7 @@
|
||||
// MICROPY_PY_UJSON depends on MICROPY_PY_IO
|
||||
#define MICROPY_PY_IO (0)
|
||||
#define MICROPY_PY_REVERSE_SPECIAL_METHODS (0)
|
||||
#define MICROPY_PY_UBINASCII (0)
|
||||
#define MICROPY_PY_UJSON (0)
|
||||
#define MICROPY_PY_COLLECTIONS_ORDEREDDICT (0)
|
||||
#define MICROPY_PY_UERRNO_LIST \
|
||||
|
@ -188,6 +188,7 @@ SRC_C += \
|
||||
lib/utils/pyexec.c \
|
||||
lib/utils/stdout_helpers.c \
|
||||
lib/utils/sys_stdio_mphal.c \
|
||||
peripherals/pcnt.c \
|
||||
peripherals/pins.c \
|
||||
peripherals/rmt.c \
|
||||
supervisor/shared/memory.c
|
||||
|
@ -30,7 +30,7 @@ Connect these pins using a [USB adapter](https://www.adafruit.com/product/4090)
|
||||
|
||||
## Building and flashing ##
|
||||
|
||||
Before building or flashing the ESP32-S2, you must [install the esp-idf](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html). This must be re-done ever time the esp-idf is updated, but not every time you build. Run `cd ports/esp32s2` from `circuitpython/` to move to the esp32s2 port root, and run:
|
||||
Before building or flashing the ESP32-S2, you must [install the esp-idf](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html). This must be re-done every time the esp-idf is updated, but not every time you build. Run `cd ports/esp32s2` from `circuitpython/` to move to the esp32s2 port root, and run:
|
||||
|
||||
```
|
||||
./esp-idf/install.sh
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
//Micropython setup
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "EInk Portal"
|
||||
#define MICROPY_HW_BOARD_NAME "MagTag"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO1)
|
@ -1,6 +1,6 @@
|
||||
USB_VID = 0x239A
|
||||
USB_PID = 0x80E6
|
||||
USB_PRODUCT = "EInk Portal"
|
||||
USB_PRODUCT = "MagTag"
|
||||
USB_MANUFACTURER = "Adafruit"
|
||||
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
@ -2,41 +2,65 @@
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO12), MP_ROM_PTR(&pin_GPIO12) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO15), MP_ROM_PTR(&pin_GPIO15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO16), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA),MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO33),MP_ROM_PTR(&pin_GPIO33) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL),MP_ROM_PTR(&pin_GPIO34) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO34),MP_ROM_PTR(&pin_GPIO34) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI),MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO35),MP_ROM_PTR(&pin_GPIO35) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO),MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO37),MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO42), MP_ROM_PTR(&pin_GPIO42) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO42) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO45) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_IO45), MP_ROM_PTR(&pin_GPIO45) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_DEBUG_RX), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_DEBUG_TX), MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI),MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO),MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
84
ports/esp32s2/common-hal/countio/Counter.c
Normal file
84
ports/esp32s2/common-hal/countio/Counter.c
Normal file
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "common-hal/countio/Counter.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "py/runtime.h"
|
||||
#include "supervisor/shared/translate.h"
|
||||
|
||||
void common_hal_countio_counter_construct(countio_counter_obj_t* self,
|
||||
const mcu_pin_obj_t* pin) {
|
||||
claim_pin(pin);
|
||||
|
||||
// Prepare configuration for the PCNT unit
|
||||
const pcnt_config_t pcnt_config = {
|
||||
// Set PCNT input signal and control GPIOs
|
||||
.pulse_gpio_num = pin->number,
|
||||
.ctrl_gpio_num = PCNT_PIN_NOT_USED,
|
||||
.channel = PCNT_CHANNEL_0,
|
||||
// What to do on the positive / negative edge of pulse input?
|
||||
.pos_mode = PCNT_COUNT_INC, // Count up on the positive edge
|
||||
.neg_mode = PCNT_COUNT_DIS, // Keep the counter value on the negative edge
|
||||
};
|
||||
|
||||
// Initialize PCNT unit
|
||||
const int8_t unit = peripherals_pcnt_init(pcnt_config);
|
||||
if (unit == -1) {
|
||||
mp_raise_RuntimeError(translate("All PCNT units in use"));
|
||||
}
|
||||
|
||||
self->pin = pin->number;
|
||||
self->unit = (pcnt_unit_t)unit;
|
||||
}
|
||||
|
||||
bool common_hal_countio_counter_deinited(countio_counter_obj_t* self) {
|
||||
return self->unit == PCNT_UNIT_MAX;
|
||||
}
|
||||
|
||||
void common_hal_countio_counter_deinit(countio_counter_obj_t* self) {
|
||||
if (common_hal_countio_counter_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
reset_pin_number(self->pin);
|
||||
peripherals_pcnt_deinit(&self->unit);
|
||||
}
|
||||
|
||||
mp_int_t common_hal_countio_counter_get_count(countio_counter_obj_t* self) {
|
||||
int16_t count;
|
||||
pcnt_get_counter_value(self->unit, &count);
|
||||
return count+self->count;
|
||||
}
|
||||
|
||||
void common_hal_countio_counter_set_count(countio_counter_obj_t* self,
|
||||
mp_int_t new_count) {
|
||||
self->count = new_count;
|
||||
pcnt_counter_clear(self->unit);
|
||||
}
|
||||
|
||||
void common_hal_countio_counter_reset(countio_counter_obj_t* self) {
|
||||
common_hal_countio_counter_set_count(self, 0);
|
||||
}
|
40
ports/esp32s2/common-hal/countio/Counter.h
Normal file
40
ports/esp32s2/common-hal/countio/Counter.h
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_COUNTIO_COUNTER_H
|
||||
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_COUNTIO_COUNTER_H
|
||||
|
||||
#include "py/obj.h"
|
||||
#include "peripherals/pcnt.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
uint8_t pin;
|
||||
mp_int_t count;
|
||||
pcnt_unit_t unit;
|
||||
} countio_counter_obj_t;
|
||||
|
||||
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_COUNTIO_COUNT_H
|
1
ports/esp32s2/common-hal/countio/__init__.c
Normal file
1
ports/esp32s2/common-hal/countio/__init__.c
Normal file
@ -0,0 +1 @@
|
||||
//No countio module functions
|
@ -125,4 +125,6 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout
|
||||
|
||||
// Free channel again
|
||||
esp32s2_peripherals_free_rmt(config.channel);
|
||||
// Swap pin back to GPIO mode
|
||||
gpio_set_direction(digitalinout->pin->number, GPIO_MODE_OUTPUT);
|
||||
}
|
||||
|
86
ports/esp32s2/common-hal/rotaryio/IncrementalEncoder.c
Normal file
86
ports/esp32s2/common-hal/rotaryio/IncrementalEncoder.c
Normal file
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "common-hal/rotaryio/IncrementalEncoder.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "py/runtime.h"
|
||||
#include "supervisor/shared/translate.h"
|
||||
|
||||
void common_hal_rotaryio_incrementalencoder_construct(rotaryio_incrementalencoder_obj_t* self,
|
||||
const mcu_pin_obj_t* pin_a, const mcu_pin_obj_t* pin_b) {
|
||||
claim_pin(pin_a);
|
||||
claim_pin(pin_b);
|
||||
|
||||
// Prepare configuration for the PCNT unit
|
||||
const pcnt_config_t pcnt_config = {
|
||||
// Set PCNT input signal and control GPIOs
|
||||
.pulse_gpio_num = pin_a->number,
|
||||
.ctrl_gpio_num = pin_b->number,
|
||||
.channel = PCNT_CHANNEL_0,
|
||||
// What to do on the positive / negative edge of pulse input?
|
||||
.pos_mode = PCNT_COUNT_DEC, // Count up on the positive edge
|
||||
.neg_mode = PCNT_COUNT_INC, // Keep the counter value on the negative edge
|
||||
// What to do when control input is low or high?
|
||||
.lctrl_mode = PCNT_MODE_REVERSE, // Reverse counting direction if low
|
||||
.hctrl_mode = PCNT_MODE_KEEP, // Keep the primary counter mode if high
|
||||
};
|
||||
|
||||
// Initialize PCNT unit
|
||||
const int8_t unit = peripherals_pcnt_init(pcnt_config);
|
||||
if (unit == -1) {
|
||||
mp_raise_RuntimeError(translate("All PCNT units in use"));
|
||||
}
|
||||
|
||||
self->pin_a = pin_a->number;
|
||||
self->pin_b = pin_b->number;
|
||||
self->unit = (pcnt_unit_t)unit;
|
||||
}
|
||||
|
||||
bool common_hal_rotaryio_incrementalencoder_deinited(rotaryio_incrementalencoder_obj_t* self) {
|
||||
return self->unit == PCNT_UNIT_MAX;
|
||||
}
|
||||
|
||||
void common_hal_rotaryio_incrementalencoder_deinit(rotaryio_incrementalencoder_obj_t* self) {
|
||||
if (common_hal_rotaryio_incrementalencoder_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
reset_pin_number(self->pin_a);
|
||||
reset_pin_number(self->pin_b);
|
||||
peripherals_pcnt_deinit(&self->unit);
|
||||
}
|
||||
|
||||
mp_int_t common_hal_rotaryio_incrementalencoder_get_position(rotaryio_incrementalencoder_obj_t* self) {
|
||||
int16_t count;
|
||||
pcnt_get_counter_value(self->unit, &count);
|
||||
return (count/2)+self->position;
|
||||
}
|
||||
|
||||
void common_hal_rotaryio_incrementalencoder_set_position(rotaryio_incrementalencoder_obj_t* self,
|
||||
mp_int_t new_position) {
|
||||
self->position = new_position;
|
||||
pcnt_counter_clear(self->unit);
|
||||
}
|
40
ports/esp32s2/common-hal/rotaryio/IncrementalEncoder.h
Normal file
40
ports/esp32s2/common-hal/rotaryio/IncrementalEncoder.h
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ROTARYIO_INCREMENTALENCODER_H
|
||||
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ROTARYIO_INCREMENTALENCODER_H
|
||||
|
||||
#include "py/obj.h"
|
||||
#include "peripherals/pcnt.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
uint8_t pin_a, pin_b;
|
||||
mp_int_t position;
|
||||
pcnt_unit_t unit;
|
||||
} rotaryio_incrementalencoder_obj_t;
|
||||
|
||||
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ROTARYIO_INCREMENTALENCODER_H
|
1
ports/esp32s2/common-hal/rotaryio/__init__.c
Normal file
1
ports/esp32s2/common-hal/rotaryio/__init__.c
Normal file
@ -0,0 +1 @@
|
||||
// No rotaryio module functions.
|
@ -79,15 +79,15 @@ mp_uint_t common_hal_socketpool_socket_send(socketpool_socket_obj_t* self, const
|
||||
|
||||
mp_uint_t common_hal_socketpool_socket_recv_into(socketpool_socket_obj_t* self, const uint8_t* buf, mp_uint_t len) {
|
||||
size_t received = 0;
|
||||
ssize_t last_read = 1;
|
||||
int status = 0;
|
||||
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||
int sockfd;
|
||||
esp_err_t err = esp_tls_get_conn_sockfd(self->tcp, &sockfd);
|
||||
if (err != ESP_OK) {
|
||||
mp_raise_OSError(MP_EBADF);
|
||||
}
|
||||
while (received < len &&
|
||||
last_read > 0 &&
|
||||
while (received == 0 &&
|
||||
status >= 0 &&
|
||||
(self->timeout_ms == 0 || supervisor_ticks_ms64() - start_ticks <= self->timeout_ms) &&
|
||||
!mp_hal_is_interrupted()) {
|
||||
RUN_BACKGROUND_TASKS;
|
||||
@ -95,27 +95,25 @@ mp_uint_t common_hal_socketpool_socket_recv_into(socketpool_socket_obj_t* self,
|
||||
if (available == 0) {
|
||||
// This reads the raw socket buffer and is used for non-TLS connections
|
||||
// and between encrypted TLS blocks.
|
||||
int status = lwip_ioctl(sockfd, FIONREAD, &available);
|
||||
if (status < 0) {
|
||||
last_read = status;
|
||||
break;
|
||||
}
|
||||
status = lwip_ioctl(sockfd, FIONREAD, &available);
|
||||
}
|
||||
size_t remaining = len - received;
|
||||
if (available > remaining) {
|
||||
available = remaining;
|
||||
}
|
||||
if (available > 0) {
|
||||
last_read = esp_tls_conn_read(self->tcp, (void*) buf + received, available);
|
||||
received += last_read;
|
||||
status = esp_tls_conn_read(self->tcp, (void*) buf + received, available);
|
||||
if (status > 0) {
|
||||
received += status;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (last_read == 0) {
|
||||
if (received == 0) {
|
||||
// socket closed
|
||||
common_hal_socketpool_socket_close(self);
|
||||
}
|
||||
if (last_read < 0) {
|
||||
if (status < 0) {
|
||||
mp_raise_BrokenPipeError();
|
||||
}
|
||||
return received;
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Scott Shawcroft for Adafruit Industries
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Scott Shawcroft
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -135,6 +135,7 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
|
||||
# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
|
||||
# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
|
||||
# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set
|
||||
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
|
||||
# end of Compiler options
|
||||
|
||||
#
|
||||
@ -263,6 +264,11 @@ CONFIG_ESP32S2_ALLOW_RTC_FAST_MEM_AS_HEAP=y
|
||||
# CONFIG_PM_ENABLE is not set
|
||||
# end of Power Management
|
||||
|
||||
#
|
||||
# ADC-Calibration
|
||||
#
|
||||
# end of ADC-Calibration
|
||||
|
||||
#
|
||||
# Common ESP-related
|
||||
#
|
||||
@ -332,12 +338,13 @@ CONFIG_ESP_TIMER_IMPL_SYSTIMER=y
|
||||
#
|
||||
# Wi-Fi
|
||||
#
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=4
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=8
|
||||
# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
|
||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
||||
CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=16
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=16
|
||||
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||
@ -401,6 +408,7 @@ CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
||||
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
|
||||
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
|
||||
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
|
||||
# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
|
||||
CONFIG_FREERTOS_DEBUG_OCDAWARE=y
|
||||
# end of FreeRTOS
|
||||
|
||||
@ -439,7 +447,7 @@ CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
|
||||
# CONFIG_LWIP_L2_TO_L3_COPY is not set
|
||||
# CONFIG_LWIP_IRAM_OPTIMIZATION is not set
|
||||
CONFIG_LWIP_TIMERS_ONDEMAND=y
|
||||
CONFIG_LWIP_MAX_SOCKETS=10
|
||||
CONFIG_LWIP_MAX_SOCKETS=4
|
||||
# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set
|
||||
# CONFIG_LWIP_SO_LINGER is not set
|
||||
CONFIG_LWIP_SO_REUSE=y
|
||||
@ -459,6 +467,9 @@ CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
||||
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
||||
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
||||
|
||||
#
|
||||
# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
|
||||
|
||||
#
|
||||
# DHCP server
|
||||
#
|
||||
@ -474,15 +485,15 @@ CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
||||
#
|
||||
# TCP
|
||||
#
|
||||
CONFIG_LWIP_MAX_ACTIVE_TCP=16
|
||||
CONFIG_LWIP_MAX_LISTENING_TCP=16
|
||||
CONFIG_LWIP_MAX_ACTIVE_TCP=4
|
||||
CONFIG_LWIP_MAX_LISTENING_TCP=4
|
||||
CONFIG_LWIP_TCP_MAXRTX=12
|
||||
CONFIG_LWIP_TCP_SYNMAXRTX=6
|
||||
CONFIG_LWIP_TCP_MSS=1440
|
||||
CONFIG_LWIP_TCP_TMR_INTERVAL=250
|
||||
CONFIG_LWIP_TCP_MSL=60000
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=5744
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=2880
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=2880
|
||||
CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
|
||||
CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
|
||||
# CONFIG_LWIP_TCP_SACK_OUT is not set
|
||||
@ -505,6 +516,8 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||
# CONFIG_LWIP_PPP_SUPPORT is not set
|
||||
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
|
||||
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
|
||||
# CONFIG_LWIP_SLIP_SUPPORT is not set
|
||||
|
||||
#
|
||||
@ -552,8 +565,10 @@ CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
|
||||
# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
|
||||
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
||||
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
|
||||
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
|
||||
# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
|
||||
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=2048
|
||||
CONFIG_MBEDTLS_DYNAMIC_BUFFER=y
|
||||
CONFIG_MBEDTLS_DYNAMIC_FREE_PEER_CERT=y
|
||||
CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y
|
||||
# CONFIG_MBEDTLS_DEBUG is not set
|
||||
|
||||
#
|
||||
@ -706,6 +721,7 @@ CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
|
||||
CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
|
||||
CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
|
||||
CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
|
||||
# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
|
||||
|
||||
#
|
||||
# Auto-detect flash chips
|
||||
@ -824,8 +840,8 @@ CONFIG_TCP_MAXRTX=12
|
||||
CONFIG_TCP_SYNMAXRTX=6
|
||||
CONFIG_TCP_MSS=1440
|
||||
CONFIG_TCP_MSL=60000
|
||||
CONFIG_TCP_SND_BUF_DEFAULT=5744
|
||||
CONFIG_TCP_WND_DEFAULT=5744
|
||||
CONFIG_TCP_SND_BUF_DEFAULT=2880
|
||||
CONFIG_TCP_WND_DEFAULT=2880
|
||||
CONFIG_TCP_RECVMBOX_SIZE=6
|
||||
CONFIG_TCP_QUEUE_OOSEQ=y
|
||||
# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
|
||||
|
@ -17,10 +17,10 @@ CIRCUITPY_FULL_BUILD = 1
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_CANIO = 1
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_COUNTIO = 1
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
CIRCUITPY_ROTARYIO = 1
|
||||
CIRCUITPY_NVM = 0
|
||||
# We don't have enough endpoints to include MIDI.
|
||||
CIRCUITPY_USB_MIDI = 0
|
||||
|
66
ports/esp32s2/peripherals/pcnt.c
Normal file
66
ports/esp32s2/peripherals/pcnt.c
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "peripherals/pcnt.h"
|
||||
|
||||
#define PCNT_UNIT_ACTIVE 1
|
||||
#define PCNT_UNIT_INACTIVE 0
|
||||
|
||||
static uint8_t pcnt_state[4];
|
||||
|
||||
int peripherals_pcnt_init(pcnt_config_t pcnt_config) {
|
||||
// Look for available pcnt unit
|
||||
for (uint8_t i = 0; i<=3; i++) {
|
||||
if (pcnt_state[i] == PCNT_UNIT_INACTIVE) {
|
||||
pcnt_config.unit = (pcnt_unit_t)i;
|
||||
pcnt_state[i] = PCNT_UNIT_ACTIVE;
|
||||
break;
|
||||
} else if (i == 3) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize PCNT unit
|
||||
pcnt_unit_config(&pcnt_config);
|
||||
|
||||
// Configure and enable the input filter
|
||||
pcnt_set_filter_value(pcnt_config.unit, 100);
|
||||
pcnt_filter_enable(pcnt_config.unit);
|
||||
|
||||
// Initialize PCNT's counter
|
||||
pcnt_counter_pause(pcnt_config.unit);
|
||||
pcnt_counter_clear(pcnt_config.unit);
|
||||
|
||||
// Everything is set up, now go to counting
|
||||
pcnt_counter_resume(pcnt_config.unit);
|
||||
|
||||
return pcnt_config.unit;
|
||||
}
|
||||
|
||||
void peripherals_pcnt_deinit(pcnt_unit_t* unit) {
|
||||
pcnt_state[*unit] = PCNT_UNIT_INACTIVE;
|
||||
*unit = PCNT_UNIT_MAX;
|
||||
}
|
35
ports/esp32s2/peripherals/pcnt.h
Normal file
35
ports/esp32s2/peripherals/pcnt.h
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_ESP32S2_PERIPHERALS_PCNT_HANDLER_H
|
||||
#define MICROPY_INCLUDED_ESP32S2_PERIPHERALS_PCNT_HANDLER_H
|
||||
|
||||
#include "driver/pcnt.h"
|
||||
|
||||
extern int peripherals_pcnt_init(pcnt_config_t pcnt_config);
|
||||
extern void peripherals_pcnt_deinit(pcnt_unit_t* unit);
|
||||
|
||||
#endif // MICROPY_INCLUDED_ESP32S2_PERIPHERALS_PCNT_HANDLER_H
|
@ -148,7 +148,18 @@ uint32_t *port_stack_get_limit(void) {
|
||||
}
|
||||
|
||||
uint32_t *port_stack_get_top(void) {
|
||||
return port_stack_get_limit() + CONFIG_ESP_MAIN_TASK_STACK_SIZE / (sizeof(uint32_t) / sizeof(StackType_t));
|
||||
// The sizeof-arithmetic is so that the pointer arithmetic is done on units
|
||||
// of uint32_t instead of units of StackType_t. StackType_t is an alias
|
||||
// for a byte sized type.
|
||||
//
|
||||
// The main stack is bigger than CONFIG_ESP_MAIN_TASK_STACK_SIZE -- an
|
||||
// "extra" size is added to it (TASK_EXTRA_STACK_SIZE). This total size is
|
||||
// available as ESP_TASK_MAIN_STACK. Presumably TASK_EXTRA_STACK_SIZE is
|
||||
// additional stack that can be used by the esp-idf runtime. But what's
|
||||
// important for us is that some very outermost stack frames, such as
|
||||
// pyexec_friendly_repl, could lie inside the "extra" area and be invisible
|
||||
// to the garbage collector.
|
||||
return port_stack_get_limit() + ESP_TASK_MAIN_STACK / (sizeof(uint32_t) / sizeof(StackType_t));
|
||||
}
|
||||
|
||||
supervisor_allocation _fixed_stack;
|
||||
|
38
ports/nrf/boards/ADM_B_NRF52840_1/board.c
Normal file
38
ports/nrf/boards/ADM_B_NRF52840_1/board.c
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "boards/board.h"
|
||||
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
|
||||
}
|
33
ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.h
Normal file
33
ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.h
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Glenn Ruben Bakke
|
||||
*
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "nrfx/hal/nrf_gpio.h"
|
||||
|
||||
#define MICROPY_HW_BOARD_NAME "AtelierDuMaker nRF52840 Breakout"
|
||||
#define MICROPY_HW_MCU_NAME "nRF52840"
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_P0_19)
|
8
ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.mk
Normal file
8
ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.mk
Normal file
@ -0,0 +1,8 @@
|
||||
USB_VID = 0x239A
|
||||
USB_PID = 0x80A0
|
||||
USB_PRODUCT = "ADM_B_NRF52840_1"
|
||||
USB_MANUFACTURER = "AtelierDuMaker"
|
||||
|
||||
MCU_CHIP = nrf52840
|
||||
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
57
ports/nrf/boards/ADM_B_NRF52840_1/pins.c
Normal file
57
ports/nrf/boards/ADM_B_NRF52840_1/pins.c
Normal file
@ -0,0 +1,57 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_10), MP_ROM_PTR(&pin_P0_02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_11), MP_ROM_PTR(&pin_P1_11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_13), MP_ROM_PTR(&pin_P1_13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_15), MP_ROM_PTR(&pin_P1_15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_03), MP_ROM_PTR(&pin_P0_03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_02), MP_ROM_PTR(&pin_P0_02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_28), MP_ROM_PTR(&pin_P0_28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_29), MP_ROM_PTR(&pin_P0_29) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_30), MP_ROM_PTR(&pin_P0_30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_31), MP_ROM_PTR(&pin_P0_31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_04), MP_ROM_PTR(&pin_P0_04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_05), MP_ROM_PTR(&pin_P0_05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_14), MP_ROM_PTR(&pin_P1_14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_12), MP_ROM_PTR(&pin_P1_12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_25), MP_ROM_PTR(&pin_P0_25) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_11), MP_ROM_PTR(&pin_P0_11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_08), MP_ROM_PTR(&pin_P1_08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_27), MP_ROM_PTR(&pin_P0_28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_08), MP_ROM_PTR(&pin_P0_08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_06), MP_ROM_PTR(&pin_P0_06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_26), MP_ROM_PTR(&pin_P0_26) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_10), MP_ROM_PTR(&pin_P0_10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_09), MP_ROM_PTR(&pin_P0_09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_06), MP_ROM_PTR(&pin_P1_06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_04), MP_ROM_PTR(&pin_P1_04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_02), MP_ROM_PTR(&pin_P1_02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_01), MP_ROM_PTR(&pin_P1_01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_03), MP_ROM_PTR(&pin_P1_03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_00), MP_ROM_PTR(&pin_P1_00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_22), MP_ROM_PTR(&pin_P0_22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_07), MP_ROM_PTR(&pin_P1_07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_05), MP_ROM_PTR(&pin_P1_05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_24), MP_ROM_PTR(&pin_P0_24) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_20), MP_ROM_PTR(&pin_P0_20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_17), MP_ROM_PTR(&pin_P0_17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_15), MP_ROM_PTR(&pin_P0_15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_14), MP_ROM_PTR(&pin_P0_14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_13), MP_ROM_PTR(&pin_P0_13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_16), MP_ROM_PTR(&pin_P0_16) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_07), MP_ROM_PTR(&pin_P0_07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P1_09), MP_ROM_PTR(&pin_P1_09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_12), MP_ROM_PTR(&pin_P0_12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_23), MP_ROM_PTR(&pin_P0_23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_21), MP_ROM_PTR(&pin_P0_21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P0_19), MP_ROM_PTR(&pin_P0_19) },
|
||||
|
||||
// RESET { MP_ROM_QSTR(MP_QSTR_P0_18), MP_ROM_PTR(&pin_P0_18) }
|
||||
|
||||
};
|
||||
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
@ -109,10 +109,10 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_P0_27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_P0_27) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_P27), MP_ROM_PTR(&pin_P1_14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_P1_14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_RESET), MP_ROM_PTR(&pin_P1_14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_BACKLIGHT), MP_ROM_PTR(&pin_P1_14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_P27), MP_ROM_PTR(&pin_P1_13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_P1_13) },
|
||||
//{ MP_ROM_QSTR(MP_QSTR_TFT_RESET), MP_ROM_PTR(&pin_P1_13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_BACKLIGHT), MP_ROM_PTR(&pin_P1_13) },
|
||||
|
||||
// P28~P33/D28~D33 connecte into QSPI FlashROM (W25Q16JV_IQ)
|
||||
|
||||
|
@ -197,6 +197,9 @@ typedef long mp_off_t;
|
||||
#ifndef MICROPY_PY_COLLECTIONS_ORDEREDDICT
|
||||
#define MICROPY_PY_COLLECTIONS_ORDEREDDICT (CIRCUITPY_FULL_BUILD)
|
||||
#endif
|
||||
#ifndef MICROPY_PY_UBINASCII
|
||||
#define MICROPY_PY_UBINASCII (CIRCUITPY_FULL_BUILD)
|
||||
#endif
|
||||
// Opposite setting is deliberate.
|
||||
#define MICROPY_PY_UERRNO_ERRORCODE (!CIRCUITPY_FULL_BUILD)
|
||||
#ifndef MICROPY_PY_URE
|
||||
@ -699,6 +702,12 @@ extern const struct _mp_obj_module_t ustack_module;
|
||||
#endif
|
||||
|
||||
// These modules are not yet in shared-bindings, but we prefer the non-uxxx names.
|
||||
#if MICROPY_PY_UBINASCII
|
||||
#define BINASCII_MODULE { MP_ROM_QSTR(MP_QSTR_binascii), MP_ROM_PTR(&mp_module_ubinascii) },
|
||||
#else
|
||||
#define BINASCII_MODULE
|
||||
#endif
|
||||
|
||||
#if MICROPY_PY_UERRNO
|
||||
#define ERRNO_MODULE { MP_ROM_QSTR(MP_QSTR_errno), MP_ROM_PTR(&mp_module_uerrno) },
|
||||
#else
|
||||
@ -770,6 +779,7 @@ extern const struct _mp_obj_module_t wifi_module;
|
||||
AUDIOMIXER_MODULE \
|
||||
AUDIOMP3_MODULE \
|
||||
AUDIOPWMIO_MODULE \
|
||||
BINASCII_MODULE \
|
||||
BITBANGIO_MODULE \
|
||||
BLEIO_MODULE \
|
||||
BOARD_MODULE \
|
||||
|
@ -239,7 +239,12 @@ STATIC const mp_rom_map_elem_t mp_builtin_module_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_hashlib), MP_ROM_PTR(&mp_module_uhashlib) },
|
||||
#endif
|
||||
#if MICROPY_PY_UBINASCII
|
||||
{ MP_ROM_QSTR(MP_QSTR_binascii), MP_ROM_PTR(&mp_module_ubinascii) },
|
||||
#if CIRCUITPY
|
||||
// CircuitPython: Defined in MICROPY_PORT_BUILTIN_MODULES, so not defined here.
|
||||
// TODO: move to shared-bindings/
|
||||
#else
|
||||
{ MP_ROM_QSTR(MP_QSTR_ubinascii), MP_ROM_PTR(&mp_module_ubinascii) },
|
||||
#endif
|
||||
#endif
|
||||
#if MICROPY_PY_URANDOM
|
||||
{ MP_ROM_QSTR(MP_QSTR_urandom), MP_ROM_PTR(&mp_module_urandom) },
|
||||
|
@ -28,6 +28,12 @@
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
#if BOARD_I2C
|
||||
#include "shared-bindings/busio/I2C.h"
|
||||
#endif
|
||||
#if BOARD_SPI
|
||||
#include "shared-bindings/busio/SPI.h"
|
||||
#endif
|
||||
|
||||
//| """Board specific pin names
|
||||
//|
|
||||
@ -45,7 +51,7 @@
|
||||
#if BOARD_I2C
|
||||
mp_obj_t board_i2c(void) {
|
||||
mp_obj_t singleton = common_hal_board_get_i2c();
|
||||
if (singleton != NULL) {
|
||||
if (singleton != NULL && !common_hal_busio_i2c_deinited(singleton)) {
|
||||
return singleton;
|
||||
}
|
||||
assert_pin_free(DEFAULT_I2C_BUS_SDA);
|
||||
@ -69,7 +75,7 @@ MP_DEFINE_CONST_FUN_OBJ_0(board_i2c_obj, board_i2c);
|
||||
#if BOARD_SPI
|
||||
mp_obj_t board_spi(void) {
|
||||
mp_obj_t singleton = common_hal_board_get_spi();
|
||||
if (singleton != NULL) {
|
||||
if (singleton != NULL && !common_hal_busio_spi_deinited(singleton)) {
|
||||
return singleton;
|
||||
}
|
||||
assert_pin_free(DEFAULT_SPI_BUS_SCK);
|
||||
|
@ -49,7 +49,7 @@
|
||||
//| loopback: bool = False,
|
||||
//| silent: bool = False,
|
||||
//| auto_restart: bool = False,
|
||||
//| ):
|
||||
//| ) -> None:
|
||||
//| """A common shared-bus protocol. The rx and tx pins are generally
|
||||
//| connected to a transceiver which controls the H and L pins on a
|
||||
//| shared bus.
|
||||
@ -171,7 +171,7 @@ STATIC const mp_obj_property_t canio_can_receive_error_count_obj = {
|
||||
(mp_obj_t)mp_const_none},
|
||||
};
|
||||
|
||||
//| state: State
|
||||
//| state: BusState
|
||||
//| """The current state of the bus. (read-only)"""
|
||||
STATIC mp_obj_t canio_can_state_get(mp_obj_t self_in) {
|
||||
canio_can_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
@ -291,7 +291,7 @@ STATIC const mp_obj_property_t canio_can_loopback_obj = {
|
||||
};
|
||||
|
||||
|
||||
//| def send(message: Union[RemoteTransmissionRequest, Message]) -> None:
|
||||
//| def send(self, message: Union[RemoteTransmissionRequest, Message]) -> None:
|
||||
//| """Send a message on the bus with the given data and id.
|
||||
//| If the message could not be sent due to a full fifo or a bus error condition, RuntimeError is raised.
|
||||
//| """
|
||||
@ -352,7 +352,7 @@ STATIC mp_obj_t canio_can_enter(mp_obj_t self_in) {
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_can_enter_obj, canio_can_enter);
|
||||
|
||||
//| def __exit__(self, unused1, unused2, unused3) -> None:
|
||||
//| def __exit__(self, unused1: Optional[Type[BaseException]], unused2: Optional[BaseException], unused3: Optional[TracebackType]) -> None:
|
||||
//| """Calls deinit()"""
|
||||
//| ...
|
||||
STATIC mp_obj_t canio_can_exit(size_t num_args, const mp_obj_t args[]) {
|
||||
|
@ -123,7 +123,7 @@ STATIC mp_obj_t canio_listener_enter(mp_obj_t self_in) {
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_listener_enter_obj, canio_listener_enter);
|
||||
|
||||
//| def __exit__(self, unused1, unused2, unused3) -> None:
|
||||
//| def __exit__(self, unused1: Optional[Type[BaseException]], unused2: Optional[BaseException], unused3: Optional[TracebackType]) -> None:
|
||||
//| """Calls deinit()"""
|
||||
//| ...
|
||||
STATIC mp_obj_t canio_listener_exit(size_t num_args, const mp_obj_t args[]) {
|
||||
|
@ -33,7 +33,7 @@
|
||||
//| """Describe CAN bus messages to match"""
|
||||
//|
|
||||
//|
|
||||
//| def __init__(self, id: int, *, mask: Optional[int] = None, extended: bool = False):
|
||||
//| def __init__(self, id: int, *, mask: Optional[int] = None, extended: bool = False) -> None:
|
||||
//| """Construct a Match with the given properties.
|
||||
//|
|
||||
//| If mask is not None, then the filter is for any id which matches all
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "py/runtime.h"
|
||||
|
||||
//| class Message:
|
||||
//| def __init__(self, id: int, data: bytes, *, extended: bool = False):
|
||||
//| def __init__(self, id: int, data: bytes, *, extended: bool = False) -> None:
|
||||
//| """Construct a Message to send on a CAN bus.
|
||||
//|
|
||||
//| :param int id: The numeric ID of the message
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "py/runtime.h"
|
||||
|
||||
//| class RemoteTransmissionRequest:
|
||||
//| def __init__(self, id: int, length: int, *, extended: bool = False):
|
||||
//| def __init__(self, id: int, length: int, *, extended: bool = False) -> None:
|
||||
//| """Construct a RemoteTransmissionRequest to send on a CAN bus.
|
||||
//|
|
||||
//| :param int id: The numeric ID of the requested message
|
||||
|
@ -172,7 +172,7 @@ STATIC mp_obj_t bitmap_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t val
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
//| def blit(self, x: int, y: int, source_bitmap: bitmap, *, x1: int, y1: int, x2: int, y2: int, skip_index: int) -> None:
|
||||
//| def blit(self, x: int, y: int, source_bitmap: Bitmap, *, x1: int, y1: int, x2: int, y2: int, skip_index: int) -> None:
|
||||
//| """Inserts the source_bitmap region defined by rectangular boundaries
|
||||
//| (x1,y1) and (x2,y2) into the bitmap at the specified (x,y) location.
|
||||
//|
|
||||
@ -274,7 +274,7 @@ STATIC mp_obj_t displayio_bitmap_obj_blit(size_t n_args, const mp_obj_t *pos_arg
|
||||
MP_DEFINE_CONST_FUN_OBJ_KW(displayio_bitmap_blit_obj, 4, displayio_bitmap_obj_blit);
|
||||
// `displayio_bitmap_obj_blit` requires at least 4 arguments
|
||||
|
||||
//| def fill(self, value: Any) -> None:
|
||||
//| def fill(self, value: int) -> None:
|
||||
//| """Fills the bitmap with the supplied palette index value."""
|
||||
//| ...
|
||||
//|
|
||||
|
@ -39,7 +39,7 @@
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "supervisor/shared/translate.h"
|
||||
|
||||
//| _DisplayBus = Union[FourWire, ParallelBus, I2CDisplay]
|
||||
//| _DisplayBus = Union['FourWire', 'ParallelBus', 'I2CDisplay']
|
||||
//| """:py:class:`FourWire`, :py:class:`ParallelBus` or :py:class:`I2CDisplay`"""
|
||||
//|
|
||||
|
||||
|
@ -126,7 +126,7 @@ const mp_obj_property_t ipaddress_ipv4address_version_obj = {
|
||||
(mp_obj_t)&mp_const_none_obj},
|
||||
};
|
||||
|
||||
//| def __eq__(self, other: IPv4Address) -> bool:
|
||||
//| def __eq__(self, other: object) -> bool:
|
||||
//| """Two Address objects are equal if their addresses and address types are equal."""
|
||||
//| ...
|
||||
//|
|
||||
|
@ -49,7 +49,14 @@ STATIC const mp_obj_type_t socket_type;
|
||||
|
||||
//| class socket:
|
||||
//|
|
||||
//| def __init__(self, family: int, type: int, proto: int) -> None:
|
||||
//| AF_INET: int
|
||||
//| AF_INET6: int
|
||||
//| SOCK_STREAM: int
|
||||
//| SOCK_DGRAM: int
|
||||
//| SOCK_RAW: int
|
||||
//| IPPROTO_TCP: int
|
||||
//|
|
||||
//| def __init__(self, family: int = AF_INET, type: int = SOCK_STREAM, proto: int = IPPROTO_TCP) -> None:
|
||||
//| """Create a new socket
|
||||
//|
|
||||
//| :param int family: AF_INET or AF_INET6
|
||||
@ -57,12 +64,6 @@ STATIC const mp_obj_type_t socket_type;
|
||||
//| :param int proto: IPPROTO_TCP, IPPROTO_UDP or IPPROTO_RAW (ignored)"""
|
||||
//| ...
|
||||
//|
|
||||
//| AF_INET: int
|
||||
//| AF_INET6: int
|
||||
//| SOCK_STREAM: int
|
||||
//| SOCK_DGRAM: int
|
||||
//| SOCK_RAW: int
|
||||
//|
|
||||
|
||||
STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
||||
mp_arg_check_num(n_args, kw_args, 0, 4, false);
|
||||
|
@ -161,7 +161,7 @@ STATIC mp_obj_t socketpool_socket_close(mp_obj_t self_in) {
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(socketpool_socket_close_obj, socketpool_socket_close);
|
||||
|
||||
//| def connect(self, address: tuple) -> None:
|
||||
//| def connect(self, address: Tuple[str, int]) -> None:
|
||||
//| """Connect a socket to a remote address
|
||||
//|
|
||||
//| :param ~tuple address: tuple of (remote_address, remote_port)"""
|
||||
|
@ -57,8 +57,14 @@ STATIC mp_obj_t socketpool_socketpool_make_new(const mp_obj_type_t *type, size_t
|
||||
return MP_OBJ_FROM_PTR(s);
|
||||
}
|
||||
|
||||
|
||||
//| def socket(self, family: int = AF_INET, type: int = SOCK_STREAM, proto: int = IPPROTO_TCP) -> None:
|
||||
//| AF_INET: int
|
||||
//| AF_INET6: int
|
||||
//| SOCK_STREAM: int
|
||||
//| SOCK_DGRAM: int
|
||||
//| SOCK_RAW: int
|
||||
//| IPPROTO_TCP: int
|
||||
//|
|
||||
//| def socket(self, family: int = AF_INET, type: int = SOCK_STREAM, proto: int = IPPROTO_TCP) -> socketpool.Socket:
|
||||
//| """Create a new socket
|
||||
//|
|
||||
//| :param ~int family: AF_INET or AF_INET6
|
||||
@ -66,6 +72,7 @@ STATIC mp_obj_t socketpool_socketpool_make_new(const mp_obj_type_t *type, size_t
|
||||
//| :param ~int proto: IPPROTO_TCP, IPPROTO_UDP or IPPROTO_RAW (ignored)"""
|
||||
//| ...
|
||||
//|
|
||||
|
||||
STATIC mp_obj_t socketpool_socketpool_socket(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
mp_arg_check_num(n_args, kw_args, 0, 5, false);
|
||||
|
||||
@ -82,7 +89,7 @@ STATIC mp_obj_t socketpool_socketpool_socket(size_t n_args, const mp_obj_t *pos_
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_KW(socketpool_socketpool_socket_obj, 1, socketpool_socketpool_socket);
|
||||
|
||||
//| def getaddrinfo(host: str, port: int, family: int = 0, type: int = 0, proto: int = 0, flags: int = 0) -> tuple:
|
||||
//| def getaddrinfo(host: str, port: int, family: int = 0, type: int = 0, proto: int = 0, flags: int = 0) -> Tuple[int, int, int, str, Tuple[str, int]]:
|
||||
//| """Gets the address information for a hostname and port
|
||||
//|
|
||||
//| Returns the appropriate family, socket type, socket protocol and
|
||||
|
@ -51,7 +51,7 @@ STATIC mp_obj_t ssl_sslcontext_make_new(const mp_obj_type_t *type, size_t n_args
|
||||
return MP_OBJ_FROM_PTR(s);
|
||||
}
|
||||
|
||||
//| def wrap_socket(sock: socketpool.Socket, *, server_side: bool = False, server_hostname: str = None) -> socketpool.Socket:
|
||||
//| def wrap_socket(sock: socketpool.Socket, *, server_side: bool = False, server_hostname: Optional[str] = None) -> socketpool.Socket:
|
||||
//| """Wraps the socket into a socket-compatible class that handles SSL negotiation.
|
||||
//| The socket must be of type SOCK_STREAM."""
|
||||
//| ...
|
||||
|
@ -79,7 +79,7 @@ const mp_obj_property_t wifi_radio_mac_address_obj = {
|
||||
};
|
||||
|
||||
|
||||
//| def start_scanning_networks(self, *, start_channel=1, stop_channel=11) -> Iterable[Network]:
|
||||
//| def start_scanning_networks(self, *, start_channel: int = 1, stop_channel: int = 11) -> Iterable[Network]:
|
||||
//| """Scans for available wifi networks over the given channel range. Make sure the channels are allowed in your country."""
|
||||
//| ...
|
||||
//|
|
||||
@ -283,7 +283,7 @@ const mp_obj_property_t wifi_radio_ap_info_obj = {
|
||||
(mp_obj_t)&mp_const_none_obj },
|
||||
};
|
||||
|
||||
//| def ping(self, ip, *, timeout: float = 0.5) -> float:
|
||||
//| def ping(self, ip: ipaddress.IPv4Address, *, timeout: Optional[float] = 0.5) -> float:
|
||||
//| """Ping an IP to test connectivity. Returns echo time in seconds.
|
||||
//| Returns None when it times out."""
|
||||
//| ...
|
||||
|
@ -55,9 +55,8 @@ mp_obj_t common_hal_board_get_i2c(void) {
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_board_create_i2c(void) {
|
||||
if (i2c_singleton != NULL) {
|
||||
return i2c_singleton;
|
||||
}
|
||||
// All callers have either already verified this or come so early that it can't be otherwise.
|
||||
assert(i2c_singleton == NULL || common_hal_busio_i2c_deinited(i2c_singleton));
|
||||
busio_i2c_obj_t *self = &i2c_obj;
|
||||
self->base.type = &busio_i2c_type;
|
||||
|
||||
@ -79,9 +78,8 @@ mp_obj_t common_hal_board_get_spi(void) {
|
||||
}
|
||||
|
||||
mp_obj_t common_hal_board_create_spi(void) {
|
||||
if (spi_singleton != NULL) {
|
||||
return spi_singleton;
|
||||
}
|
||||
// All callers have either already verified this or come so early that it can't be otherwise.
|
||||
assert(spi_singleton == NULL || common_hal_busio_spi_deinited(spi_singleton));
|
||||
busio_spi_obj_t *self = &spi_obj;
|
||||
self->base.type = &busio_spi_type;
|
||||
|
||||
@ -139,14 +137,17 @@ void reset_board_busses(void) {
|
||||
bool display_using_i2c = false;
|
||||
#if CIRCUITPY_DISPLAYIO
|
||||
for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) {
|
||||
if (displays[i].i2cdisplay_bus.bus == i2c_singleton) {
|
||||
if (displays[i].bus_base.type == &displayio_i2cdisplay_type && displays[i].i2cdisplay_bus.bus == i2c_singleton) {
|
||||
display_using_i2c = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (!display_using_i2c) {
|
||||
i2c_singleton = NULL;
|
||||
if (i2c_singleton != NULL) {
|
||||
if (!display_using_i2c) {
|
||||
common_hal_busio_i2c_deinit(i2c_singleton);
|
||||
i2c_singleton = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if BOARD_SPI
|
||||
@ -169,9 +170,10 @@ void reset_board_busses(void) {
|
||||
// make sure SPI lock is not held over a soft reset
|
||||
if (spi_singleton != NULL) {
|
||||
common_hal_busio_spi_unlock(spi_singleton);
|
||||
}
|
||||
if (!display_using_spi) {
|
||||
spi_singleton = NULL;
|
||||
if (!display_using_spi) {
|
||||
common_hal_busio_spi_deinit(spi_singleton);
|
||||
spi_singleton = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if BOARD_UART
|
||||
|
@ -83,10 +83,16 @@ bool common_hal_displayio_tilegrid_get_hidden(displayio_tilegrid_t* self) {
|
||||
|
||||
void common_hal_displayio_tilegrid_set_hidden(displayio_tilegrid_t* self, bool hidden) {
|
||||
self->hidden = hidden;
|
||||
if(!hidden){
|
||||
self->full_change = true;
|
||||
}
|
||||
}
|
||||
|
||||
void displayio_tilegrid_set_hidden_by_parent(displayio_tilegrid_t *self, bool hidden) {
|
||||
self->hidden_by_parent = hidden;
|
||||
if(!hidden){
|
||||
self->full_change = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool displayio_tilegrid_get_previous_area(displayio_tilegrid_t *self, displayio_area_t* area) {
|
||||
|
@ -47,5 +47,4 @@ char serial_read(void);
|
||||
bool serial_bytes_available(void);
|
||||
bool serial_connected(void);
|
||||
|
||||
extern volatile bool _serial_connected;
|
||||
#endif // MICROPY_INCLUDED_SUPERVISOR_SERIAL_H
|
||||
|
@ -47,8 +47,6 @@ busio_uart_obj_t debug_uart;
|
||||
byte buf_array[64];
|
||||
#endif
|
||||
|
||||
volatile bool _serial_connected;
|
||||
|
||||
void serial_early_init(void) {
|
||||
#if defined(DEBUG_UART_TX) && defined(DEBUG_UART_RX)
|
||||
debug_uart.base.type = &busio_uart_type;
|
||||
@ -71,7 +69,9 @@ bool serial_connected(void) {
|
||||
#if defined(DEBUG_UART_TX) && defined(DEBUG_UART_RX)
|
||||
return true;
|
||||
#else
|
||||
return _serial_connected;
|
||||
// True if DTR is asserted, and the USB connection is up.
|
||||
// tud_cdc_get_line_state(): bit 0 is DTR, bit 1 is RTS
|
||||
return (tud_cdc_get_line_state() & 1) && tud_ready();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -116,7 +116,6 @@ void tud_umount_cb(void) {
|
||||
// remote_wakeup_en : if host allows us to perform remote wakeup
|
||||
// USB Specs: Within 7ms, device must draw an average current less than 2.5 mA from bus
|
||||
void tud_suspend_cb(bool remote_wakeup_en) {
|
||||
_serial_connected = false;
|
||||
}
|
||||
|
||||
// Invoked when usb bus is resumed
|
||||
@ -128,8 +127,6 @@ void tud_resume_cb(void) {
|
||||
void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts) {
|
||||
(void) itf; // interface ID, not used
|
||||
|
||||
_serial_connected = dtr;
|
||||
|
||||
// DTR = false is counted as disconnected
|
||||
if ( !dtr )
|
||||
{
|
||||
|
@ -17,7 +17,8 @@ import black
|
||||
|
||||
|
||||
IMPORTS_IGNORE = frozenset({'int', 'float', 'bool', 'str', 'bytes', 'tuple', 'list', 'set', 'dict', 'bytearray', 'slice', 'file', 'buffer', 'range', 'array', 'struct_time'})
|
||||
IMPORTS_TYPING = frozenset({'Any', 'Optional', 'Union', 'Tuple', 'List', 'Sequence', 'NamedTuple', 'Iterable', 'Iterator', 'Callable', 'AnyStr', 'overload'})
|
||||
IMPORTS_TYPING = frozenset({'Any', 'Optional', 'Union', 'Tuple', 'List', 'Sequence', 'NamedTuple', 'Iterable', 'Iterator', 'Callable', 'AnyStr', 'overload', 'Type'})
|
||||
IMPORTS_TYPES = frozenset({'TracebackType'})
|
||||
CPY_TYPING = frozenset({'ReadableBuffer', 'WriteableBuffer', 'AudioSample', 'FrameBuffer'})
|
||||
|
||||
|
||||
@ -63,6 +64,7 @@ def find_stub_issues(tree):
|
||||
def extract_imports(tree):
|
||||
modules = set()
|
||||
typing = set()
|
||||
types = set()
|
||||
cpy_typing = set()
|
||||
|
||||
def collect_annotations(anno_tree):
|
||||
@ -74,6 +76,8 @@ def extract_imports(tree):
|
||||
continue
|
||||
elif node.id in IMPORTS_TYPING:
|
||||
typing.add(node.id)
|
||||
elif node.id in IMPORTS_TYPES:
|
||||
types.add(node.id)
|
||||
elif node.id in CPY_TYPING:
|
||||
cpy_typing.add(node.id)
|
||||
elif isinstance(node, ast.Attribute):
|
||||
@ -94,6 +98,7 @@ def extract_imports(tree):
|
||||
return {
|
||||
"modules": sorted(modules),
|
||||
"typing": sorted(typing),
|
||||
"types": sorted(types),
|
||||
"cpy_typing": sorted(cpy_typing),
|
||||
}
|
||||
|
||||
@ -181,6 +186,8 @@ def convert_folder(top_level, stub_directory):
|
||||
# Add import statements
|
||||
imports = extract_imports(tree)
|
||||
import_lines = ["from __future__ import annotations"]
|
||||
if imports["types"]:
|
||||
import_lines.append("from types import " + ", ".join(imports["types"]))
|
||||
if imports["typing"]:
|
||||
import_lines.append("from typing import " + ", ".join(imports["typing"]))
|
||||
if imports["cpy_typing"]:
|
||||
|
Loading…
x
Reference in New Issue
Block a user