Merge pull request #2931 from tannewt/esp32s2_digitalio
Finish digitalio and pin use tracking for ESP32S2
This commit is contained in:
commit
3574670226
6
Makefile
6
Makefile
@ -210,6 +210,12 @@ locale/circuitpython.pot: all-source
|
|||||||
translate: locale/circuitpython.pot
|
translate: locale/circuitpython.pot
|
||||||
for po in $(shell ls locale/*.po); do msgmerge -U $$po -s --no-fuzzy-matching --add-location=file locale/circuitpython.pot; done
|
for po in $(shell ls locale/*.po); do msgmerge -U $$po -s --no-fuzzy-matching --add-location=file locale/circuitpython.pot; done
|
||||||
|
|
||||||
|
merge-translate:
|
||||||
|
git merge HEAD 1>&2 2> /dev/null; test $$? -eq 128
|
||||||
|
rm locale/*~ || true
|
||||||
|
git checkout --ours -- locale/*
|
||||||
|
make translate
|
||||||
|
|
||||||
check-translate: locale/circuitpython.pot $(wildcard locale/*.po)
|
check-translate: locale/circuitpython.pot $(wildcard locale/*.po)
|
||||||
$(PYTHON) tools/check_translations.py $^
|
$(PYTHON) tools/check_translations.py $^
|
||||||
|
|
||||||
|
10
locale/ID.po
10
locale/ID.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -1082,10 +1082,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1249,6 +1245,10 @@ msgstr ""
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "Pin tidak mempunya kemampuan untuk ADC (Analog Digital Converter)"
|
msgstr "Pin tidak mempunya kemampuan untuk ADC (Analog Digital Converter)"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -1071,10 +1071,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1237,6 +1233,10 @@ msgstr ""
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
50
locale/cs.po
50
locale/cs.po
@ -3,28 +3,25 @@
|
|||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2020-05-24 03:22+0000\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: dronecz <mzuzelka@gmail.com>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"Language: cs\n"
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
|
||||||
"X-Generator: Weblate 4.1-dev\n"
|
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Code done running. Waiting for reload.\n"
|
"Code done running. Waiting for reload.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
|
||||||
"Kód byl dokončen. Čekám na opětovné načtení.\n"
|
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -32,70 +29,65 @@ msgid ""
|
|||||||
"Please file an issue with the contents of your CIRCUITPY drive at \n"
|
"Please file an issue with the contents of your CIRCUITPY drive at \n"
|
||||||
"https://github.com/adafruit/circuitpython/issues\n"
|
"https://github.com/adafruit/circuitpython/issues\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
|
||||||
"Založte prosím problém s obsahem vaší jednotky CIRCUITPY na adrese\n"
|
|
||||||
"https://github.com/adafruit/circuitpython/issues\n"
|
|
||||||
|
|
||||||
#: supervisor/shared/safe_mode.c
|
#: supervisor/shared/safe_mode.c
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"To exit, please reset the board without "
|
"To exit, please reset the board without "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
|
||||||
"Pro ukončení, prosím resetujte desku bez "
|
|
||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid " File \"%q\""
|
msgid " File \"%q\""
|
||||||
msgstr " Soubor \"% q\""
|
msgstr ""
|
||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid " File \"%q\", line %d"
|
msgid " File \"%q\", line %d"
|
||||||
msgstr " Soubor \"% q\", řádek% d"
|
msgstr ""
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid " output:\n"
|
msgid " output:\n"
|
||||||
msgstr " výstup:\n"
|
msgstr ""
|
||||||
|
|
||||||
#: py/objstr.c
|
#: py/objstr.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%%c requires int or char"
|
msgid "%%c requires int or char"
|
||||||
msgstr "%% c vyžaduje int nebo char"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
|
msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
|
||||||
msgstr "%d adresní piny a %d rgb piny označují výšku %d, nikoli %d"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/microcontroller/Pin.c
|
#: shared-bindings/microcontroller/Pin.c
|
||||||
msgid "%q in use"
|
msgid "%q in use"
|
||||||
msgstr "%q se nyní používá"
|
msgstr ""
|
||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid "%q index out of range"
|
msgid "%q index out of range"
|
||||||
msgstr "%q index je mimo rozsah"
|
msgstr ""
|
||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid "%q indices must be integers, not %s"
|
msgid "%q indices must be integers, not %s"
|
||||||
msgstr "Indexy% q musí být celá čísla, nikoli% s"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/vectorio/Polygon.c
|
#: shared-bindings/vectorio/Polygon.c
|
||||||
msgid "%q list must be a list"
|
msgid "%q list must be a list"
|
||||||
msgstr "Seznam% q musí být seznam"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
#: shared-bindings/_bleio/PacketBuffer.c shared-bindings/displayio/Group.c
|
#: shared-bindings/_bleio/PacketBuffer.c shared-bindings/displayio/Group.c
|
||||||
#: shared-bindings/displayio/Shape.c shared-bindings/vectorio/Circle.c
|
#: shared-bindings/displayio/Shape.c shared-bindings/vectorio/Circle.c
|
||||||
#: shared-bindings/vectorio/Rectangle.c
|
#: shared-bindings/vectorio/Rectangle.c
|
||||||
msgid "%q must be >= 1"
|
msgid "%q must be >= 1"
|
||||||
msgstr "% q musí být > = 1"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-module/vectorio/Polygon.c
|
#: shared-module/vectorio/Polygon.c
|
||||||
msgid "%q must be a tuple of length 2"
|
msgid "%q must be a tuple of length 2"
|
||||||
msgstr "% q musí být n-tice délky 2"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/fontio/BuiltinFont.c
|
#: shared-bindings/fontio/BuiltinFont.c
|
||||||
msgid "%q should be an int"
|
msgid "%q should be an int"
|
||||||
msgstr "% q by měl být int"
|
msgstr ""
|
||||||
|
|
||||||
#: py/bc.c py/objnamedtuple.c
|
#: py/bc.c py/objnamedtuple.c
|
||||||
msgid "%q() takes %d positional arguments but %d were given"
|
msgid "%q() takes %d positional arguments but %d were given"
|
||||||
@ -1079,10 +1071,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1245,6 +1233,10 @@ msgstr ""
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
552
locale/de_DE.po
552
locale/de_DE.po
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -1071,10 +1071,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1237,6 +1233,10 @@ msgstr ""
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2020-03-30 22:11+0000\n"
|
"PO-Revision-Date: 2020-03-30 22:11+0000\n"
|
||||||
"Last-Translator: Tannewt <devnull@unpythonic.net>\n"
|
"Last-Translator: Tannewt <devnull@unpythonic.net>\n"
|
||||||
"Language-Team: English <https://later.unpythonic.net/projects/circuitpython/"
|
"Language-Team: English <https://later.unpythonic.net/projects/circuitpython/"
|
||||||
@ -1080,10 +1080,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1246,6 +1242,10 @@ msgstr ""
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "Belay that! Th' Pin be not ADC capable"
|
msgstr "Belay that! Th' Pin be not ADC capable"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
10
locale/es.po
10
locale/es.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2020-05-17 20:56+0000\n"
|
"PO-Revision-Date: 2020-05-17 20:56+0000\n"
|
||||||
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
|
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -1080,10 +1080,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1252,6 +1248,10 @@ msgstr "Permiso denegado"
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "Pin no tiene capacidad ADC"
|
msgstr "Pin no tiene capacidad ADC"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
||||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||||
"Language-Team: fil\n"
|
"Language-Team: fil\n"
|
||||||
@ -1087,10 +1087,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1257,6 +1253,10 @@ msgstr "Walang pahintulot"
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "Ang pin ay walang kakayahan sa ADC"
|
msgstr "Ang pin ay walang kakayahan sa ADC"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
13
locale/fr.po
13
locale/fr.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.1\n"
|
"Project-Id-Version: 0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2020-05-17 20:56+0000\n"
|
"PO-Revision-Date: 2020-05-17 20:56+0000\n"
|
||||||
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
||||||
"Language-Team: French <https://later.unpythonic.net/projects/circuitpython/"
|
"Language-Team: French <https://later.unpythonic.net/projects/circuitpython/"
|
||||||
@ -1102,10 +1102,6 @@ msgstr "Doit utiliser un multiple de 6 broches RVB, pas %d"
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr "Nom trop long"
|
msgstr "Nom trop long"
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr "Étape négative non prise en charge"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr "Pas de CCCD pour cette caractéristique"
|
msgstr "Pas de CCCD pour cette caractéristique"
|
||||||
@ -1278,6 +1274,10 @@ msgstr "Permission refusée"
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "La broche ne peut être utilisée pour l'ADC"
|
msgstr "La broche ne peut être utilisée pour l'ADC"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr "La broche doit prendre en charge les interruptions matérielles"
|
msgstr "La broche doit prendre en charge les interruptions matérielles"
|
||||||
@ -3545,6 +3545,9 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Must be a Group subclass."
|
#~ msgid "Must be a Group subclass."
|
||||||
#~ msgstr "Doit être une sous-classe de 'Group'"
|
#~ msgstr "Doit être une sous-classe de 'Group'"
|
||||||
|
|
||||||
|
#~ msgid "Negative step not supported"
|
||||||
|
#~ msgstr "Étape négative non prise en charge"
|
||||||
|
|
||||||
#~ msgid "No PulseIn support for %q"
|
#~ msgid "No PulseIn support for %q"
|
||||||
#~ msgstr "Pas de support de PulseIn pour %q"
|
#~ msgstr "Pas de support de PulseIn pour %q"
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
||||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -1091,10 +1091,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1266,6 +1262,10 @@ msgstr "Permesso negato"
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "Il pin non ha capacità di ADC"
|
msgstr "Il pin non ha capacità di ADC"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
10
locale/ko.po
10
locale/ko.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2019-05-06 14:22-0700\n"
|
"PO-Revision-Date: 2019-05-06 14:22-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -1075,10 +1075,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1241,6 +1237,10 @@ msgstr ""
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
726
locale/nl.po
726
locale/nl.po
File diff suppressed because it is too large
Load Diff
10
locale/pl.po
10
locale/pl.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
||||||
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
||||||
"Language-Team: pl\n"
|
"Language-Team: pl\n"
|
||||||
@ -1076,10 +1076,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1242,6 +1238,10 @@ msgstr "Odmowa dostępu"
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "Nóżka nie obsługuje ADC"
|
msgstr "Nóżka nie obsługuje ADC"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -1083,10 +1083,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1252,6 +1248,10 @@ msgstr "Permissão negada"
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "O pino não tem recursos de ADC"
|
msgstr "O pino não tem recursos de ADC"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
13
locale/sv.po
13
locale/sv.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2020-05-20 18:32+0000\n"
|
"PO-Revision-Date: 2020-05-20 18:32+0000\n"
|
||||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -1091,10 +1091,6 @@ msgstr "Måste använda ett multipel av 6 rgb-pinnar, inte %d"
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr "Name är för långt"
|
msgstr "Name är för långt"
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr "Negativt step stöds inte"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr "Ingen CCCD för denna karaktäristik"
|
msgstr "Ingen CCCD för denna karaktäristik"
|
||||||
@ -1264,6 +1260,10 @@ msgstr "Åtkomst nekad"
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "Pinnen har inte ADC-funktionalitet"
|
msgstr "Pinnen har inte ADC-funktionalitet"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr "Pinnen måste stödja hårdvaruavbrott"
|
msgstr "Pinnen måste stödja hårdvaruavbrott"
|
||||||
@ -3275,5 +3275,8 @@ msgstr "y-värde utanför intervall"
|
|||||||
msgid "zero step"
|
msgid "zero step"
|
||||||
msgstr "noll steg"
|
msgstr "noll steg"
|
||||||
|
|
||||||
|
#~ msgid "Negative step not supported"
|
||||||
|
#~ msgstr "Negativt step stöds inte"
|
||||||
|
|
||||||
#~ msgid "empty %q list"
|
#~ msgid "empty %q list"
|
||||||
#~ msgstr "tom %q-lista"
|
#~ msgstr "tom %q-lista"
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: circuitpython-cn\n"
|
"Project-Id-Version: circuitpython-cn\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-05-19 15:01+0800\n"
|
"POT-Creation-Date: 2020-05-26 13:09-0700\n"
|
||||||
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
||||||
"Last-Translator: hexthat\n"
|
"Last-Translator: hexthat\n"
|
||||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||||
@ -1084,10 +1084,6 @@ msgstr ""
|
|||||||
msgid "Name too long"
|
msgid "Name too long"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
|
||||||
msgid "Negative step not supported"
|
|
||||||
msgstr "Bù zhīchí fù bù"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
||||||
msgid "No CCCD for this Characteristic"
|
msgid "No CCCD for this Characteristic"
|
||||||
msgstr "Zhège tèzhēng méiyǒu CCCD"
|
msgstr "Zhège tèzhēng méiyǒu CCCD"
|
||||||
@ -1256,6 +1252,10 @@ msgstr "Quánxiàn bèi jùjué"
|
|||||||
msgid "Pin does not have ADC capabilities"
|
msgid "Pin does not have ADC capabilities"
|
||||||
msgstr "Pin méiyǒu ADC nénglì"
|
msgstr "Pin méiyǒu ADC nénglì"
|
||||||
|
|
||||||
|
#: shared-bindings/digitalio/DigitalInOut.c
|
||||||
|
msgid "Pin is input only"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||||
msgid "Pin must support hardware interrupts"
|
msgid "Pin must support hardware interrupts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3443,6 +3443,9 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Must be a Group subclass."
|
#~ msgid "Must be a Group subclass."
|
||||||
#~ msgstr "Bìxū shì fēnzǔ zi lèi."
|
#~ msgstr "Bìxū shì fēnzǔ zi lèi."
|
||||||
|
|
||||||
|
#~ msgid "Negative step not supported"
|
||||||
|
#~ msgstr "Bù zhīchí fù bù"
|
||||||
|
|
||||||
#~ msgid "No default I2C bus"
|
#~ msgid "No default I2C bus"
|
||||||
#~ msgstr "Méiyǒu mòrèn I2C gōnggòng qìchē"
|
#~ msgstr "Méiyǒu mòrèn I2C gōnggòng qìchē"
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ void common_hal_digitalio_digitalinout_switch_to_input(
|
|||||||
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_switch_to_output(
|
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(
|
||||||
digitalio_digitalinout_obj_t* self, bool value,
|
digitalio_digitalinout_obj_t* self, bool value,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
const uint8_t pin = self->pin->number;
|
const uint8_t pin = self->pin->number;
|
||||||
@ -86,6 +86,7 @@ void common_hal_digitalio_digitalinout_switch_to_output(
|
|||||||
|
|
||||||
// Direction is set in set_value. We don't need to do it here.
|
// Direction is set in set_value. We don't need to do it here.
|
||||||
common_hal_digitalio_digitalinout_set_value(self, value);
|
common_hal_digitalio_digitalinout_set_value(self, value);
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
||||||
@ -128,7 +129,7 @@ bool common_hal_digitalio_digitalinout_get_value(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_drive_mode(
|
digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(
|
||||||
digitalio_digitalinout_obj_t* self,
|
digitalio_digitalinout_obj_t* self,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
bool value = common_hal_digitalio_digitalinout_get_value(self);
|
bool value = common_hal_digitalio_digitalinout_get_value(self);
|
||||||
@ -138,6 +139,7 @@ void common_hal_digitalio_digitalinout_set_drive_mode(
|
|||||||
if (value) {
|
if (value) {
|
||||||
common_hal_digitalio_digitalinout_set_value(self, value);
|
common_hal_digitalio_digitalinout_set_value(self, value);
|
||||||
}
|
}
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
||||||
|
@ -70,7 +70,7 @@ void common_hal_digitalio_digitalinout_switch_to_input(digitalio_digitalinout_ob
|
|||||||
board_gpio_config(self->pin->number, 0, true, true, pull);
|
board_gpio_config(self->pin->number, 0, true, true, pull);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_switch_to_output(digitalio_digitalinout_obj_t *self, bool value, digitalio_drive_mode_t drive_mode) {
|
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(digitalio_digitalinout_obj_t *self, bool value, digitalio_drive_mode_t drive_mode) {
|
||||||
self->input = false;
|
self->input = false;
|
||||||
self->open_drain = drive_mode == DRIVE_MODE_OPEN_DRAIN;
|
self->open_drain = drive_mode == DRIVE_MODE_OPEN_DRAIN;
|
||||||
board_gpio_write(self->pin->number, -1);
|
board_gpio_write(self->pin->number, -1);
|
||||||
@ -80,6 +80,7 @@ void common_hal_digitalio_digitalinout_switch_to_output(digitalio_digitalinout_o
|
|||||||
board_gpio_write(self->pin->number, 0);
|
board_gpio_write(self->pin->number, 0);
|
||||||
}
|
}
|
||||||
common_hal_digitalio_digitalinout_set_value(self, value);
|
common_hal_digitalio_digitalinout_set_value(self, value);
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(digitalio_digitalinout_obj_t *self) {
|
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(digitalio_digitalinout_obj_t *self) {
|
||||||
@ -104,7 +105,7 @@ bool common_hal_digitalio_digitalinout_get_value(digitalio_digitalinout_obj_t *s
|
|||||||
return board_gpio_read(self->pin->number);
|
return board_gpio_read(self->pin->number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_drive_mode(digitalio_digitalinout_obj_t *self, digitalio_drive_mode_t drive_mode) {
|
digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(digitalio_digitalinout_obj_t *self, digitalio_drive_mode_t drive_mode) {
|
||||||
if (drive_mode == DRIVE_MODE_PUSH_PULL) {
|
if (drive_mode == DRIVE_MODE_PUSH_PULL) {
|
||||||
board_gpio_write(self->pin->number, -1);
|
board_gpio_write(self->pin->number, -1);
|
||||||
board_gpio_config(self->pin->number, 0, false, true, PIN_FLOAT);
|
board_gpio_config(self->pin->number, 0, false, true, PIN_FLOAT);
|
||||||
@ -115,6 +116,7 @@ void common_hal_digitalio_digitalinout_set_drive_mode(digitalio_digitalinout_obj
|
|||||||
board_gpio_write(self->pin->number, 0);
|
board_gpio_write(self->pin->number, 0);
|
||||||
self->open_drain = true;
|
self->open_drain = true;
|
||||||
}
|
}
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(digitalio_digitalinout_obj_t *self) {
|
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(digitalio_digitalinout_obj_t *self) {
|
||||||
|
@ -152,6 +152,7 @@ SRC_C += \
|
|||||||
mphalport.c \
|
mphalport.c \
|
||||||
boards/$(BOARD)/board.c \
|
boards/$(BOARD)/board.c \
|
||||||
boards/$(BOARD)/pins.c \
|
boards/$(BOARD)/pins.c \
|
||||||
|
modules/$(CIRCUITPY_MODULE).c \
|
||||||
lib/libc/string0.c \
|
lib/libc/string0.c \
|
||||||
lib/mp-readline/readline.c \
|
lib/mp-readline/readline.c \
|
||||||
lib/oofatfs/ff.c \
|
lib/oofatfs/ff.c \
|
||||||
|
@ -26,8 +26,16 @@
|
|||||||
|
|
||||||
#include "boards/board.h"
|
#include "boards/board.h"
|
||||||
#include "mpconfigboard.h"
|
#include "mpconfigboard.h"
|
||||||
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
|
||||||
void board_init(void) {
|
void board_init(void) {
|
||||||
|
// USB
|
||||||
|
never_reset_pin(&pin_GPIO19);
|
||||||
|
never_reset_pin(&pin_GPIO20);
|
||||||
|
|
||||||
|
// Debug UART
|
||||||
|
never_reset_pin(&pin_GPIO43);
|
||||||
|
never_reset_pin(&pin_GPIO44);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool board_requests_safe_mode(void) {
|
bool board_requests_safe_mode(void) {
|
||||||
|
@ -18,3 +18,5 @@ CIRCUITPY_MICROCONTROLLER = 0
|
|||||||
CIRCUITPY_ESP_FLASH_MODE=dio
|
CIRCUITPY_ESP_FLASH_MODE=dio
|
||||||
CIRCUITPY_ESP_FLASH_FREQ=40m
|
CIRCUITPY_ESP_FLASH_FREQ=40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||||
|
|
||||||
|
CIRCUITPY_MODULE=wroom
|
||||||
|
@ -26,8 +26,16 @@
|
|||||||
|
|
||||||
#include "boards/board.h"
|
#include "boards/board.h"
|
||||||
#include "mpconfigboard.h"
|
#include "mpconfigboard.h"
|
||||||
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
|
||||||
void board_init(void) {
|
void board_init(void) {
|
||||||
|
// USB
|
||||||
|
never_reset_pin(&pin_GPIO19);
|
||||||
|
never_reset_pin(&pin_GPIO20);
|
||||||
|
|
||||||
|
// Debug UART
|
||||||
|
never_reset_pin(&pin_GPIO43);
|
||||||
|
never_reset_pin(&pin_GPIO44);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool board_requests_safe_mode(void) {
|
bool board_requests_safe_mode(void) {
|
||||||
|
@ -18,3 +18,5 @@ CIRCUITPY_MICROCONTROLLER = 0
|
|||||||
CIRCUITPY_ESP_FLASH_MODE=dio
|
CIRCUITPY_ESP_FLASH_MODE=dio
|
||||||
CIRCUITPY_ESP_FLASH_FREQ=40m
|
CIRCUITPY_ESP_FLASH_FREQ=40m
|
||||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||||
|
|
||||||
|
CIRCUITPY_MODULE=wrover
|
||||||
|
@ -30,24 +30,18 @@
|
|||||||
|
|
||||||
#include "driver/gpio.h"
|
#include "driver/gpio.h"
|
||||||
|
|
||||||
|
#include "esp-idf/components/soc/include/hal/gpio_hal.h"
|
||||||
#include "esp_log.h"
|
|
||||||
|
|
||||||
static const char* TAG = "CircuitPython digitalio";
|
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_never_reset(
|
void common_hal_digitalio_digitalinout_never_reset(
|
||||||
digitalio_digitalinout_obj_t *self) {
|
digitalio_digitalinout_obj_t *self) {
|
||||||
(void)self;
|
never_reset_pin_number(self->pin->number);
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalinout_result_t common_hal_digitalio_digitalinout_construct(
|
digitalinout_result_t common_hal_digitalio_digitalinout_construct(
|
||||||
digitalio_digitalinout_obj_t *self, const mcu_pin_obj_t *pin) {
|
digitalio_digitalinout_obj_t *self, const mcu_pin_obj_t *pin) {
|
||||||
|
claim_pin(pin);
|
||||||
// claim_pin(pin);
|
|
||||||
self->pin = pin;
|
self->pin = pin;
|
||||||
|
|
||||||
ESP_EARLY_LOGW(TAG, "construct %d", pin->number);
|
|
||||||
|
|
||||||
return DIGITALINOUT_OK;
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,78 +54,86 @@ void common_hal_digitalio_digitalinout_deinit(digitalio_digitalinout_obj_t *self
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// reset_pin_number(0, self->pin->number);
|
reset_pin_number(self->pin->number);
|
||||||
self->pin = mp_const_none;
|
self->pin = mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_switch_to_input(
|
void common_hal_digitalio_digitalinout_switch_to_input(
|
||||||
digitalio_digitalinout_obj_t *self, digitalio_pull_t pull) {
|
digitalio_digitalinout_obj_t *self, digitalio_pull_t pull) {
|
||||||
gpio_config_t config = {
|
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
||||||
.pin_bit_mask = 1 << self->pin->number,
|
gpio_set_direction(self->pin->number, GPIO_MODE_DEF_INPUT);
|
||||||
.mode = GPIO_MODE_INPUT
|
|
||||||
};
|
|
||||||
if (pull == PULL_UP) {
|
|
||||||
config.pull_up_en = GPIO_PULLUP_ENABLE;
|
|
||||||
} else if (pull == PULL_DOWN) {
|
|
||||||
config.pull_down_en = GPIO_PULLDOWN_ENABLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gpio_config(&config);
|
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(
|
||||||
}
|
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_switch_to_output(
|
|
||||||
digitalio_digitalinout_obj_t *self, bool value,
|
digitalio_digitalinout_obj_t *self, bool value,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
gpio_config_t config = {
|
|
||||||
.pin_bit_mask = 1ULL << self->pin->number,
|
|
||||||
.mode = GPIO_MODE_OUTPUT
|
|
||||||
};
|
|
||||||
if (drive_mode == DRIVE_MODE_OPEN_DRAIN) {
|
|
||||||
config.mode = GPIO_MODE_OUTPUT_OD;
|
|
||||||
}
|
|
||||||
gpio_set_level(self->pin->number, value);
|
gpio_set_level(self->pin->number, value);
|
||||||
gpio_config(&config);
|
return common_hal_digitalio_digitalinout_set_drive_mode(self, drive_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
||||||
digitalio_digitalinout_obj_t *self) {
|
digitalio_digitalinout_obj_t *self) {
|
||||||
|
uint32_t iomux = READ_PERI_REG(GPIO_PIN_MUX_REG[self->pin->number]);
|
||||||
|
if ((iomux & FUN_IE) != 0) {
|
||||||
|
return DIRECTION_INPUT;
|
||||||
|
}
|
||||||
return DIRECTION_OUTPUT;
|
return DIRECTION_OUTPUT;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_value(
|
void common_hal_digitalio_digitalinout_set_value(
|
||||||
digitalio_digitalinout_obj_t *self, bool value) {
|
digitalio_digitalinout_obj_t *self, bool value) {
|
||||||
ESP_EARLY_LOGW(TAG, "set %d %d", self->pin->number, value);
|
|
||||||
gpio_set_level(self->pin->number, value);
|
gpio_set_level(self->pin->number, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool common_hal_digitalio_digitalinout_get_value(
|
bool common_hal_digitalio_digitalinout_get_value(
|
||||||
digitalio_digitalinout_obj_t *self) {
|
digitalio_digitalinout_obj_t *self) {
|
||||||
return true;
|
return gpio_get_level(self->pin->number) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_drive_mode(
|
digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(
|
||||||
digitalio_digitalinout_obj_t *self,
|
digitalio_digitalinout_obj_t *self,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
(void)self;
|
gpio_num_t number = self->pin->number;
|
||||||
(void)drive_mode;
|
gpio_mode_t mode;
|
||||||
|
if (drive_mode == DRIVE_MODE_OPEN_DRAIN) {
|
||||||
|
mode = GPIO_MODE_DEF_OD;
|
||||||
|
} else {
|
||||||
|
mode = GPIO_MODE_DEF_OUTPUT;
|
||||||
|
}
|
||||||
|
esp_err_t result = gpio_set_direction(number, mode);
|
||||||
|
if (result != ESP_OK) {
|
||||||
|
return DIGITALINOUT_INPUT_ONLY;
|
||||||
|
}
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
||||||
digitalio_digitalinout_obj_t *self) {
|
digitalio_digitalinout_obj_t *self) {
|
||||||
// if (common_hal_digitalio_digitalinout_get_direction(self) == DIRECTION_OUTPUT)
|
if (GPIO_HAL_GET_HW(GPIO_PORT_0)->pin[self->pin->number].pad_driver == 1) {
|
||||||
// return DRIVE_MODE_PUSH_PULL;
|
|
||||||
// else
|
|
||||||
return DRIVE_MODE_OPEN_DRAIN;
|
return DRIVE_MODE_OPEN_DRAIN;
|
||||||
}
|
}
|
||||||
|
return DRIVE_MODE_PUSH_PULL;
|
||||||
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_pull(
|
void common_hal_digitalio_digitalinout_set_pull(
|
||||||
digitalio_digitalinout_obj_t *self, digitalio_pull_t pull) {
|
digitalio_digitalinout_obj_t *self, digitalio_pull_t pull) {
|
||||||
(void)self;
|
gpio_num_t number = self->pin->number;
|
||||||
(void)pull;
|
gpio_pullup_dis(number);
|
||||||
|
gpio_pulldown_dis(number);
|
||||||
|
if (pull == PULL_UP) {
|
||||||
|
gpio_pullup_en(number);
|
||||||
|
} else if (pull == PULL_DOWN) {
|
||||||
|
gpio_pulldown_en(number);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_pull_t common_hal_digitalio_digitalinout_get_pull(
|
digitalio_pull_t common_hal_digitalio_digitalinout_get_pull(
|
||||||
digitalio_digitalinout_obj_t *self) {
|
digitalio_digitalinout_obj_t *self) {
|
||||||
|
gpio_num_t gpio_num = self->pin->number;
|
||||||
|
if (REG_GET_BIT(GPIO_PIN_MUX_REG[gpio_num], FUN_PU) == 1) {
|
||||||
|
return PULL_UP;
|
||||||
|
} else if (REG_GET_BIT(GPIO_PIN_MUX_REG[gpio_num], FUN_PD) == 1) {
|
||||||
|
return PULL_DOWN;
|
||||||
|
}
|
||||||
return PULL_NONE;
|
return PULL_NONE;
|
||||||
}
|
}
|
||||||
|
@ -29,18 +29,51 @@
|
|||||||
|
|
||||||
#include "py/mphal.h"
|
#include "py/mphal.h"
|
||||||
|
|
||||||
// Mark pin as free and return it to a quiescent state.
|
#include "esp-idf/components/driver/include/driver/gpio.h"
|
||||||
void reset_pin_number(uint8_t pin_port, uint8_t pin_number) {
|
#include "esp-idf/components/soc/include/hal/gpio_hal.h"
|
||||||
|
|
||||||
|
STATIC uint32_t never_reset_pins[2];
|
||||||
|
STATIC uint32_t in_use[2];
|
||||||
|
|
||||||
|
void never_reset_pin_number(gpio_num_t pin_number) {
|
||||||
|
never_reset_pins[pin_number / 32] |= 1 << pin_number % 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void never_reset_pin(const mcu_pin_obj_t* pin) {
|
||||||
|
never_reset_pin_number(pin->number);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mark pin as free and return it to a quiescent state.
|
||||||
|
void reset_pin_number(gpio_num_t pin_number) {
|
||||||
|
never_reset_pins[pin_number / 32] &= ~(1 << pin_number % 32);
|
||||||
|
in_use[pin_number / 32] &= ~(1 << pin_number % 32);
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset_all_pins(void) {
|
||||||
|
for (uint8_t i = 0; i < GPIO_PIN_COUNT; i++) {
|
||||||
|
uint32_t iomux_address = GPIO_PIN_MUX_REG[i];
|
||||||
|
if (iomux_address == 0 ||
|
||||||
|
(never_reset_pins[i / 32] & (1 << i % 32)) != 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
gpio_set_direction(i, GPIO_MODE_DEF_INPUT);
|
||||||
|
gpio_pullup_dis(i);
|
||||||
|
gpio_pulldown_dis(i);
|
||||||
|
}
|
||||||
|
in_use[0] = 0;
|
||||||
|
in_use[1] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void claim_pin(const mcu_pin_obj_t* pin) {
|
void claim_pin(const mcu_pin_obj_t* pin) {
|
||||||
|
in_use[pin->number / 32] |= (1 << pin->number % 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool pin_number_is_free(uint8_t pin_port, uint8_t pin_number) {
|
bool pin_number_is_free(gpio_num_t pin_number) {
|
||||||
return true;
|
uint8_t offset = pin_number / 32;
|
||||||
|
uint8_t mask = 1 << pin_number % 32;
|
||||||
|
return (never_reset_pins[offset] & mask) == 0 && (in_use[offset] & mask) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool common_hal_mcu_pin_is_free(const mcu_pin_obj_t *pin) {
|
bool common_hal_mcu_pin_is_free(const mcu_pin_obj_t *pin) {
|
||||||
return pin_number_is_free(0, pin->number);
|
return pin_number_is_free(pin->number);
|
||||||
}
|
}
|
||||||
|
@ -34,11 +34,10 @@
|
|||||||
void reset_all_pins(void);
|
void reset_all_pins(void);
|
||||||
// reset_pin_number takes the pin number instead of the pointer so that objects don't
|
// reset_pin_number takes the pin number instead of the pointer so that objects don't
|
||||||
// need to store a full pointer.
|
// need to store a full pointer.
|
||||||
void reset_pin_number(uint8_t pin_port, uint8_t pin_number);
|
void reset_pin_number(gpio_num_t pin_number);
|
||||||
void claim_pin(const mcu_pin_obj_t* pin);
|
void claim_pin(const mcu_pin_obj_t* pin);
|
||||||
bool pin_number_is_free(uint8_t pin_port, uint8_t pin_number);
|
bool pin_number_is_free(gpio_num_t pin_number);
|
||||||
void never_reset_pin_number(uint8_t pin_port, uint8_t pin_number);
|
void never_reset_pin_number(gpio_num_t pin_number);
|
||||||
// GPIO_TypeDef * pin_port(uint8_t pin_port);
|
void never_reset_pin(const mcu_pin_obj_t* pin);
|
||||||
uint16_t pin_mask(uint8_t pin_number);
|
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_MICROCONTROLLER_PIN_H
|
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_MICROCONTROLLER_PIN_H
|
||||||
|
@ -39,24 +39,31 @@
|
|||||||
#include "supervisor/filesystem.h"
|
#include "supervisor/filesystem.h"
|
||||||
#include "supervisor/shared/safe_mode.h"
|
#include "supervisor/shared/safe_mode.h"
|
||||||
|
|
||||||
|
#include "freertos/FreeRTOS.h"
|
||||||
|
|
||||||
void common_hal_mcu_delay_us(uint32_t delay) {
|
void common_hal_mcu_delay_us(uint32_t delay) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
volatile uint32_t nesting_count = 0;
|
volatile uint32_t nesting_count = 0;
|
||||||
|
static portMUX_TYPE cp_mutex = portMUX_INITIALIZER_UNLOCKED;
|
||||||
|
|
||||||
void common_hal_mcu_disable_interrupts(void) {
|
void common_hal_mcu_disable_interrupts(void) {
|
||||||
|
if (nesting_count == 0) {
|
||||||
|
portENTER_CRITICAL(&cp_mutex);
|
||||||
|
}
|
||||||
nesting_count++;
|
nesting_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_mcu_enable_interrupts(void) {
|
void common_hal_mcu_enable_interrupts(void) {
|
||||||
if (nesting_count == 0) {
|
if (nesting_count == 0) {
|
||||||
|
// Maybe log here because it's very bad.
|
||||||
}
|
}
|
||||||
nesting_count--;
|
nesting_count--;
|
||||||
if (nesting_count > 0) {
|
if (nesting_count > 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
portEXIT_CRITICAL(&cp_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
|
void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
|
||||||
|
35
ports/esp32s2/modules/module.h
Normal file
35
ports/esp32s2/modules/module.h
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the Micro Python project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef MICROPY_INCLUDED_ESP32S2_MODULES_MODULE_H
|
||||||
|
#define MICROPY_INCLUDED_ESP32S2_MODULES_MODULE_H
|
||||||
|
|
||||||
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
|
||||||
|
void never_reset_module_internal_pins(void);
|
||||||
|
|
||||||
|
#endif // MICROPY_INCLUDED_ESP32S2_MODULES_MODULE_H
|
28
ports/esp32s2/modules/none.c
Normal file
28
ports/esp32s2/modules/none.c
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the Micro Python project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void never_reset_module_internal_pins(void) {
|
||||||
|
}
|
37
ports/esp32s2/modules/wroom.c
Normal file
37
ports/esp32s2/modules/wroom.c
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the Micro Python project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 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 "modules/module.h"
|
||||||
|
|
||||||
|
void never_reset_module_internal_pins(void) {
|
||||||
|
// SPI Flash
|
||||||
|
never_reset_pin(&pin_GPIO27);
|
||||||
|
never_reset_pin(&pin_GPIO28);
|
||||||
|
never_reset_pin(&pin_GPIO29);
|
||||||
|
never_reset_pin(&pin_GPIO30);
|
||||||
|
never_reset_pin(&pin_GPIO31);
|
||||||
|
never_reset_pin(&pin_GPIO32);
|
||||||
|
}
|
38
ports/esp32s2/modules/wrover.c
Normal file
38
ports/esp32s2/modules/wrover.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the Micro Python project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 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 "modules/module.h"
|
||||||
|
|
||||||
|
void never_reset_module_internal_pins(void) {
|
||||||
|
// SPI Flash and RAM
|
||||||
|
never_reset_pin(&pin_GPIO26);
|
||||||
|
never_reset_pin(&pin_GPIO27);
|
||||||
|
never_reset_pin(&pin_GPIO28);
|
||||||
|
never_reset_pin(&pin_GPIO29);
|
||||||
|
never_reset_pin(&pin_GPIO30);
|
||||||
|
never_reset_pin(&pin_GPIO31);
|
||||||
|
never_reset_pin(&pin_GPIO32);
|
||||||
|
}
|
@ -33,3 +33,5 @@ CIRCUITPY_TOUCHIO = 0
|
|||||||
# Enable USB support
|
# Enable USB support
|
||||||
CIRCUITPY_USB_HID = 1
|
CIRCUITPY_USB_HID = 1
|
||||||
CIRCUITPY_USB_MIDI = 1
|
CIRCUITPY_USB_MIDI = 1
|
||||||
|
|
||||||
|
CIRCUITPY_MODULE ?= none
|
||||||
|
@ -33,10 +33,12 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "esp32s2_peripherals_config.h"
|
#include "esp32s2_peripherals_config.h"
|
||||||
|
#include "esp-idf/config/sdkconfig.h"
|
||||||
|
#include "esp-idf/components/soc/include/hal/gpio_types.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PIN_PREFIX_FIELDS
|
PIN_PREFIX_FIELDS
|
||||||
uint8_t number;
|
gpio_num_t number;
|
||||||
} mcu_pin_obj_t;
|
} mcu_pin_obj_t;
|
||||||
|
|
||||||
extern const mcu_pin_obj_t pin_GPIO0;
|
extern const mcu_pin_obj_t pin_GPIO0;
|
||||||
|
@ -29,10 +29,12 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include "supervisor/port.h"
|
#include "supervisor/port.h"
|
||||||
#include "boards/board.h"
|
#include "boards/board.h"
|
||||||
|
#include "modules/module.h"
|
||||||
|
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
|
|
||||||
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
#include "supervisor/memory.h"
|
#include "supervisor/memory.h"
|
||||||
#include "supervisor/shared/tick.h"
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
@ -56,12 +58,14 @@ safe_mode_t port_init(void) {
|
|||||||
if (result != ESP_OK) {
|
if (result != ESP_OK) {
|
||||||
ESP_EARLY_LOGE(TAG, "Unable to create tick timer.");
|
ESP_EARLY_LOGE(TAG, "Unable to create tick timer.");
|
||||||
}
|
}
|
||||||
|
never_reset_module_internal_pins();
|
||||||
ESP_EARLY_LOGW(TAG, "port init done");
|
ESP_EARLY_LOGW(TAG, "port init done");
|
||||||
return NO_SAFE_MODE;
|
return NO_SAFE_MODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_port(void) {
|
void reset_port(void) {
|
||||||
|
|
||||||
|
reset_all_pins();
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_to_bootloader(void) {
|
void reset_to_bootloader(void) {
|
||||||
|
@ -64,12 +64,13 @@ void common_hal_digitalio_digitalinout_switch_to_input(
|
|||||||
touch_oe_write(touch_oe_read() & ~(1 << self->pin->number));
|
touch_oe_write(touch_oe_read() & ~(1 << self->pin->number));
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_switch_to_output(
|
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(
|
||||||
digitalio_digitalinout_obj_t *self, bool value,
|
digitalio_digitalinout_obj_t *self, bool value,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
(void)drive_mode;
|
(void)drive_mode;
|
||||||
common_hal_digitalio_digitalinout_set_value(self, value);
|
common_hal_digitalio_digitalinout_set_value(self, value);
|
||||||
touch_oe_write(touch_oe_read() | (1 << self->pin->number));
|
touch_oe_write(touch_oe_read() | (1 << self->pin->number));
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
||||||
@ -92,11 +93,12 @@ bool common_hal_digitalio_digitalinout_get_value(
|
|||||||
return !!(touch_i_read() & (1 << self->pin->number));
|
return !!(touch_i_read() & (1 << self->pin->number));
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_drive_mode(
|
digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(
|
||||||
digitalio_digitalinout_obj_t *self,
|
digitalio_digitalinout_obj_t *self,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
(void)self;
|
(void)self;
|
||||||
(void)drive_mode;
|
(void)drive_mode;
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
||||||
|
@ -97,7 +97,7 @@ void common_hal_digitalio_digitalinout_switch_to_input(
|
|||||||
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_switch_to_output(
|
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(
|
||||||
digitalio_digitalinout_obj_t* self, bool value,
|
digitalio_digitalinout_obj_t* self, bool value,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
self->output = true;
|
self->output = true;
|
||||||
@ -108,6 +108,7 @@ void common_hal_digitalio_digitalinout_switch_to_output(
|
|||||||
|
|
||||||
const gpio_pin_config_t config = { kGPIO_DigitalOutput, value, kGPIO_NoIntmode };
|
const gpio_pin_config_t config = { kGPIO_DigitalOutput, value, kGPIO_NoIntmode };
|
||||||
GPIO_PinInit(self->pin->gpio, self->pin->number, &config);
|
GPIO_PinInit(self->pin->gpio, self->pin->number, &config);
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
||||||
@ -125,7 +126,7 @@ bool common_hal_digitalio_digitalinout_get_value(
|
|||||||
return GPIO_PinRead(self->pin->gpio, self->pin->number);
|
return GPIO_PinRead(self->pin->gpio, self->pin->number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_drive_mode(
|
digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(
|
||||||
digitalio_digitalinout_obj_t* self,
|
digitalio_digitalinout_obj_t* self,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
bool value = common_hal_digitalio_digitalinout_get_value(self);
|
bool value = common_hal_digitalio_digitalinout_get_value(self);
|
||||||
@ -138,6 +139,7 @@ void common_hal_digitalio_digitalinout_set_drive_mode(
|
|||||||
if (value) {
|
if (value) {
|
||||||
common_hal_digitalio_digitalinout_set_value(self, value);
|
common_hal_digitalio_digitalinout_set_value(self, value);
|
||||||
}
|
}
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
||||||
|
@ -65,12 +65,13 @@ void common_hal_digitalio_digitalinout_switch_to_input(
|
|||||||
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_switch_to_output(
|
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(
|
||||||
digitalio_digitalinout_obj_t *self, bool value,
|
digitalio_digitalinout_obj_t *self, bool value,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
|
|
||||||
common_hal_digitalio_digitalinout_set_drive_mode(self, drive_mode);
|
common_hal_digitalio_digitalinout_set_drive_mode(self, drive_mode);
|
||||||
common_hal_digitalio_digitalinout_set_value(self, value);
|
common_hal_digitalio_digitalinout_set_value(self, value);
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
||||||
@ -92,7 +93,7 @@ bool common_hal_digitalio_digitalinout_get_value(
|
|||||||
: nrf_gpio_pin_out_read(self->pin->number);
|
: nrf_gpio_pin_out_read(self->pin->number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_drive_mode(
|
digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(
|
||||||
digitalio_digitalinout_obj_t *self,
|
digitalio_digitalinout_obj_t *self,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
nrf_gpio_cfg(self->pin->number,
|
nrf_gpio_cfg(self->pin->number,
|
||||||
@ -101,6 +102,7 @@ void common_hal_digitalio_digitalinout_set_drive_mode(
|
|||||||
NRF_GPIO_PIN_NOPULL,
|
NRF_GPIO_PIN_NOPULL,
|
||||||
drive_mode == DRIVE_MODE_OPEN_DRAIN ? NRF_GPIO_PIN_H0D1 : NRF_GPIO_PIN_H0H1,
|
drive_mode == DRIVE_MODE_OPEN_DRAIN ? NRF_GPIO_PIN_H0D1 : NRF_GPIO_PIN_H0H1,
|
||||||
NRF_GPIO_PIN_NOSENSE);
|
NRF_GPIO_PIN_NOSENSE);
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
||||||
|
@ -85,12 +85,13 @@ void common_hal_digitalio_digitalinout_switch_to_input(
|
|||||||
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_switch_to_output(
|
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(
|
||||||
digitalio_digitalinout_obj_t *self, bool value,
|
digitalio_digitalinout_obj_t *self, bool value,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
|
|
||||||
common_hal_digitalio_digitalinout_set_drive_mode(self, drive_mode);
|
common_hal_digitalio_digitalinout_set_drive_mode(self, drive_mode);
|
||||||
common_hal_digitalio_digitalinout_set_value(self, value);
|
common_hal_digitalio_digitalinout_set_value(self, value);
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
||||||
@ -112,7 +113,7 @@ bool common_hal_digitalio_digitalinout_get_value(
|
|||||||
: LL_GPIO_IsOutputPinSet(pin_port(self->pin->port), pin_mask(self->pin->number));
|
: LL_GPIO_IsOutputPinSet(pin_port(self->pin->port), pin_mask(self->pin->number));
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_digitalio_digitalinout_set_drive_mode(
|
digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(
|
||||||
digitalio_digitalinout_obj_t *self,
|
digitalio_digitalinout_obj_t *self,
|
||||||
digitalio_drive_mode_t drive_mode) {
|
digitalio_drive_mode_t drive_mode) {
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
@ -122,6 +123,7 @@ void common_hal_digitalio_digitalinout_set_drive_mode(
|
|||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
HAL_GPIO_Init(pin_port(self->pin->port), &GPIO_InitStruct);
|
HAL_GPIO_Init(pin_port(self->pin->port), &GPIO_InitStruct);
|
||||||
|
return DIGITALINOUT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
|
||||||
|
@ -131,7 +131,10 @@ STATIC mp_obj_t digitalio_digitalinout_switch_to_output(size_t n_args, const mp_
|
|||||||
drive_mode = DRIVE_MODE_OPEN_DRAIN;
|
drive_mode = DRIVE_MODE_OPEN_DRAIN;
|
||||||
}
|
}
|
||||||
// do the transfer
|
// do the transfer
|
||||||
common_hal_digitalio_digitalinout_switch_to_output(self, args[ARG_value].u_bool, drive_mode);
|
digitalinout_result_t result = common_hal_digitalio_digitalinout_switch_to_output(self, args[ARG_value].u_bool, drive_mode);
|
||||||
|
if (result == DIGITALINOUT_INPUT_ONLY) {
|
||||||
|
mp_raise_NotImplementedError(translate("Pin is input only"));
|
||||||
|
}
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(digitalio_digitalinout_switch_to_output_obj, 1, digitalio_digitalinout_switch_to_output);
|
MP_DEFINE_CONST_FUN_OBJ_KW(digitalio_digitalinout_switch_to_output_obj, 1, digitalio_digitalinout_switch_to_output);
|
||||||
@ -207,7 +210,10 @@ STATIC mp_obj_t digitalio_digitalinout_obj_set_direction(mp_obj_t self_in, mp_ob
|
|||||||
if (value == &digitalio_direction_input_obj) {
|
if (value == &digitalio_direction_input_obj) {
|
||||||
common_hal_digitalio_digitalinout_switch_to_input(self, PULL_NONE);
|
common_hal_digitalio_digitalinout_switch_to_input(self, PULL_NONE);
|
||||||
} else if (value == &digitalio_direction_output_obj) {
|
} else if (value == &digitalio_direction_output_obj) {
|
||||||
common_hal_digitalio_digitalinout_switch_to_output(self, false, DRIVE_MODE_PUSH_PULL);
|
digitalinout_result_t result = common_hal_digitalio_digitalinout_switch_to_output(self, false, DRIVE_MODE_PUSH_PULL);
|
||||||
|
if (result == DIGITALINOUT_INPUT_ONLY) {
|
||||||
|
mp_raise_NotImplementedError(translate("Pin is input only"));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
mp_raise_ValueError(translate("Invalid direction."));
|
mp_raise_ValueError(translate("Invalid direction."));
|
||||||
}
|
}
|
||||||
|
@ -37,18 +37,19 @@ extern const mp_obj_type_t digitalio_digitalinout_type;
|
|||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
DIGITALINOUT_OK,
|
DIGITALINOUT_OK,
|
||||||
DIGITALINOUT_PIN_BUSY
|
DIGITALINOUT_PIN_BUSY,
|
||||||
|
DIGITALINOUT_INPUT_ONLY
|
||||||
} digitalinout_result_t;
|
} digitalinout_result_t;
|
||||||
|
|
||||||
digitalinout_result_t common_hal_digitalio_digitalinout_construct(digitalio_digitalinout_obj_t* self, const mcu_pin_obj_t* pin);
|
digitalinout_result_t common_hal_digitalio_digitalinout_construct(digitalio_digitalinout_obj_t* self, const mcu_pin_obj_t* pin);
|
||||||
void common_hal_digitalio_digitalinout_deinit(digitalio_digitalinout_obj_t* self);
|
void common_hal_digitalio_digitalinout_deinit(digitalio_digitalinout_obj_t* self);
|
||||||
bool common_hal_digitalio_digitalinout_deinited(digitalio_digitalinout_obj_t* self);
|
bool common_hal_digitalio_digitalinout_deinited(digitalio_digitalinout_obj_t* self);
|
||||||
void common_hal_digitalio_digitalinout_switch_to_input(digitalio_digitalinout_obj_t* self, digitalio_pull_t pull);
|
void common_hal_digitalio_digitalinout_switch_to_input(digitalio_digitalinout_obj_t* self, digitalio_pull_t pull);
|
||||||
void common_hal_digitalio_digitalinout_switch_to_output(digitalio_digitalinout_obj_t* self, bool value, digitalio_drive_mode_t drive_mode);
|
digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(digitalio_digitalinout_obj_t* self, bool value, digitalio_drive_mode_t drive_mode);
|
||||||
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(digitalio_digitalinout_obj_t* self);
|
digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(digitalio_digitalinout_obj_t* self);
|
||||||
void common_hal_digitalio_digitalinout_set_value(digitalio_digitalinout_obj_t* self, bool value);
|
void common_hal_digitalio_digitalinout_set_value(digitalio_digitalinout_obj_t* self, bool value);
|
||||||
bool common_hal_digitalio_digitalinout_get_value(digitalio_digitalinout_obj_t* self);
|
bool common_hal_digitalio_digitalinout_get_value(digitalio_digitalinout_obj_t* self);
|
||||||
void common_hal_digitalio_digitalinout_set_drive_mode(digitalio_digitalinout_obj_t* self, digitalio_drive_mode_t drive_mode);
|
digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(digitalio_digitalinout_obj_t* self, digitalio_drive_mode_t drive_mode);
|
||||||
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(digitalio_digitalinout_obj_t* self);
|
digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(digitalio_digitalinout_obj_t* self);
|
||||||
void common_hal_digitalio_digitalinout_set_pull(digitalio_digitalinout_obj_t* self, digitalio_pull_t pull);
|
void common_hal_digitalio_digitalinout_set_pull(digitalio_digitalinout_obj_t* self, digitalio_pull_t pull);
|
||||||
digitalio_pull_t common_hal_digitalio_digitalinout_get_pull(digitalio_digitalinout_obj_t* self);
|
digitalio_pull_t common_hal_digitalio_digitalinout_get_pull(digitalio_digitalinout_obj_t* self);
|
||||||
|
Loading…
Reference in New Issue
Block a user