commit
bff40fc1c9
@ -1 +1 @@
|
|||||||
Subproject commit de6b7704c530d886ad8dfa0fa1864764d86117ee
|
Subproject commit 902c16f49197a8baf5e71ec924a812a86e733a74
|
@ -435,6 +435,11 @@ msgstr "Di bawah frame rate minimum"
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "Bit clock dan word harus memiliki kesamaan pada clock unit"
|
msgstr "Bit clock dan word harus memiliki kesamaan pada clock unit"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "Kedalaman bit harus kelipatan 8."
|
msgstr "Kedalaman bit harus kelipatan 8."
|
||||||
|
@ -429,6 +429,11 @@ msgstr ""
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -433,6 +433,11 @@ msgstr ""
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -436,6 +436,11 @@ msgstr "Unterhalb der minimalen Frame Rate"
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "Bit clock und word select müssen eine clock unit teilen"
|
msgstr "Bit clock und word select müssen eine clock unit teilen"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "Bit depth muss ein Vielfaches von 8 sein."
|
msgstr "Bit depth muss ein Vielfaches von 8 sein."
|
||||||
|
@ -428,6 +428,11 @@ msgstr ""
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -442,6 +442,11 @@ msgstr "Por debajo de taza mínima de refrescamiento"
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "Bit clock y word select deben compartir una unidad de reloj"
|
msgstr "Bit clock y word select deben compartir una unidad de reloj"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "Bits depth debe ser múltiplo de 8."
|
msgstr "Bits depth debe ser múltiplo de 8."
|
||||||
|
@ -433,6 +433,11 @@ msgstr ""
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "Ang bit clock at word select dapat makibahagi sa isang clock unit"
|
msgstr "Ang bit clock at word select dapat makibahagi sa isang clock unit"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "Bit depth ay dapat multiple ng 8."
|
msgstr "Bit depth ay dapat multiple ng 8."
|
||||||
|
@ -442,6 +442,11 @@ msgstr "Inférieur à la fréquence d'images minimale"
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "'bit clock' et 'word select' doivent partager une horloge"
|
msgstr "'bit clock' et 'word select' doivent partager une horloge"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "La profondeur de bit doit être un multiple de 8."
|
msgstr "La profondeur de bit doit être un multiple de 8."
|
||||||
|
@ -428,6 +428,11 @@ msgstr ""
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -433,6 +433,11 @@ msgid "Bit clock and word select must share a clock unit"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Clock di bit e selezione parola devono condividere la stessa unità di clock"
|
"Clock di bit e selezione parola devono condividere la stessa unità di clock"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "La profondità di bit deve essere multipla di 8."
|
msgstr "La profondità di bit deve essere multipla di 8."
|
||||||
|
11
locale/ja.po
11
locale/ja.po
@ -8,7 +8,7 @@ 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-11-04 21:18+0530\n"
|
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||||
"PO-Revision-Date: 2020-11-06 20:29+0000\n"
|
"PO-Revision-Date: 2020-11-12 22:51+0000\n"
|
||||||
"Last-Translator: sporeball <sporeballdev@gmail.com>\n"
|
"Last-Translator: sporeball <sporeballdev@gmail.com>\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
"Language: ja\n"
|
"Language: ja\n"
|
||||||
@ -16,7 +16,7 @@ msgstr ""
|
|||||||
"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=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Weblate 4.3.2\n"
|
"X-Generator: Weblate 4.4-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -437,6 +437,11 @@ msgstr "最低のフレームレート未満"
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "bit clockとword selectはクロックユニットを共有しなければなりません"
|
msgstr "bit clockとword selectはクロックユニットを共有しなければなりません"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "ビット深度は8の倍数でなければなりません"
|
msgstr "ビット深度は8の倍数でなければなりません"
|
||||||
@ -2786,7 +2791,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/wifi/Radio.c
|
#: shared-bindings/wifi/Radio.c
|
||||||
msgid "invalid hostname"
|
msgid "invalid hostname"
|
||||||
msgstr ""
|
msgstr "不正なホスト名"
|
||||||
|
|
||||||
#: extmod/modussl_axtls.c
|
#: extmod/modussl_axtls.c
|
||||||
msgid "invalid key"
|
msgid "invalid key"
|
||||||
|
@ -433,6 +433,11 @@ msgstr ""
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -435,6 +435,11 @@ msgstr "Onder de minimum frame rate"
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "Bit clock en word select moeten een clock eenheid delen"
|
msgstr "Bit clock en word select moeten een clock eenheid delen"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "Bit diepte moet een meervoud van 8 zijn."
|
msgstr "Bit diepte moet een meervoud van 8 zijn."
|
||||||
|
39
locale/pl.po
39
locale/pl.po
@ -7,7 +7,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||||
"PO-Revision-Date: 2020-09-29 01:39+0000\n"
|
"PO-Revision-Date: 2020-11-11 19:13+0000\n"
|
||||||
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
|
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
|
||||||
"Language-Team: pl\n"
|
"Language-Team: pl\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
@ -16,7 +16,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||||
"|| n%100>=20) ? 1 : 2;\n"
|
"|| n%100>=20) ? 1 : 2;\n"
|
||||||
"X-Generator: Weblate 4.3-dev\n"
|
"X-Generator: Weblate 4.4-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -76,7 +76,7 @@ msgstr "%q poza zakresem"
|
|||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid "%q indices must be integers, not %q"
|
msgid "%q indices must be integers, not %q"
|
||||||
msgstr ""
|
msgstr "%q indeksy muszą być liczbami typu int, a nie %q"
|
||||||
|
|
||||||
#: shared-bindings/vectorio/Polygon.c
|
#: shared-bindings/vectorio/Polygon.c
|
||||||
msgid "%q list must be a list"
|
msgid "%q list must be a list"
|
||||||
@ -104,7 +104,7 @@ msgstr "%q poza zakresem"
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
#: ports/atmel-samd/common-hal/microcontroller/Pin.c
|
||||||
msgid "%q pin invalid"
|
msgid "%q pin invalid"
|
||||||
msgstr ""
|
msgstr "nieprawidłowy pin %q"
|
||||||
|
|
||||||
#: shared-bindings/fontio/BuiltinFont.c
|
#: shared-bindings/fontio/BuiltinFont.c
|
||||||
msgid "%q should be an int"
|
msgid "%q should be an int"
|
||||||
@ -254,7 +254,7 @@ msgstr "'return' poza funkcją"
|
|||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield from' inside async function"
|
msgid "'yield from' inside async function"
|
||||||
msgstr ""
|
msgstr "'yield from' wewnątrz funkcji asynchronicznej"
|
||||||
|
|
||||||
#: py/compile.c
|
#: py/compile.c
|
||||||
msgid "'yield' outside function"
|
msgid "'yield' outside function"
|
||||||
@ -283,7 +283,7 @@ msgstr "Kanał przerwań sprzętowych w użyciu"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||||
msgid "ADC2 is being used by WiFi"
|
msgid "ADC2 is being used by WiFi"
|
||||||
msgstr ""
|
msgstr "ADC2 jest używany przez WiFi"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -437,6 +437,11 @@ msgstr ""
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "Zegar bitowy i wybór słowa muszą współdzielić jednostkę zegara"
|
msgstr "Zegar bitowy i wybór słowa muszą współdzielić jednostkę zegara"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "Głębia musi być wielokrotnością 8."
|
msgstr "Głębia musi być wielokrotnością 8."
|
||||||
@ -1033,7 +1038,7 @@ msgstr "Błąd wewnętrzny #%d"
|
|||||||
|
|
||||||
#: shared-bindings/sdioio/SDCard.c
|
#: shared-bindings/sdioio/SDCard.c
|
||||||
msgid "Invalid %q"
|
msgid "Invalid %q"
|
||||||
msgstr ""
|
msgstr "Nieprawidłowe %q"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
@ -1107,7 +1112,7 @@ msgstr "Zła wielkość fragmentu formatu"
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "Invalid frequency"
|
msgid "Invalid frequency"
|
||||||
msgstr ""
|
msgstr "Nieprawidłowa częstotliwość"
|
||||||
|
|
||||||
#: ports/stm/common-hal/pwmio/PWMOut.c
|
#: ports/stm/common-hal/pwmio/PWMOut.c
|
||||||
msgid "Invalid frequency supplied"
|
msgid "Invalid frequency supplied"
|
||||||
@ -1206,7 +1211,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-module/displayio/Group.c
|
#: shared-module/displayio/Group.c
|
||||||
msgid "Layer must be a Group or TileGrid subclass."
|
msgid "Layer must be a Group or TileGrid subclass."
|
||||||
msgstr "Layer musi dziedziczyć z Group albo TileGrid"
|
msgstr "Layer musi dziedziczyć z Group albo TileGrid."
|
||||||
|
|
||||||
#: py/objslice.c
|
#: py/objslice.c
|
||||||
msgid "Length must be an int"
|
msgid "Length must be an int"
|
||||||
@ -1344,7 +1349,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more channels available"
|
msgid "No more channels available"
|
||||||
msgstr ""
|
msgstr "Brak dostępnych kanałów"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
#: ports/esp32s2/common-hal/pwmio/PWMOut.c
|
||||||
msgid "No more timers available"
|
msgid "No more timers available"
|
||||||
@ -1436,7 +1441,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-module/displayio/ColorConverter.c
|
#: shared-module/displayio/ColorConverter.c
|
||||||
msgid "Only one color can be transparent at a time"
|
msgid "Only one color can be transparent at a time"
|
||||||
msgstr ""
|
msgstr "W danym momencie przezroczysty może być tylko jeden kolor"
|
||||||
|
|
||||||
#: shared-bindings/ipaddress/__init__.c
|
#: shared-bindings/ipaddress/__init__.c
|
||||||
msgid "Only raw int supported for ip"
|
msgid "Only raw int supported for ip"
|
||||||
@ -1505,7 +1510,7 @@ msgstr "Oraz moduły w systemie plików\n"
|
|||||||
|
|
||||||
#: shared-module/vectorio/Polygon.c
|
#: shared-module/vectorio/Polygon.c
|
||||||
msgid "Polygon needs at least 3 points"
|
msgid "Polygon needs at least 3 points"
|
||||||
msgstr ""
|
msgstr "Wielokąt musi mieć co najmniej 3 punkty"
|
||||||
|
|
||||||
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
|
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1817,7 +1822,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/stm/common-hal/busio/UART.c
|
#: ports/stm/common-hal/busio/UART.c
|
||||||
msgid "UART write error"
|
msgid "UART write error"
|
||||||
msgstr ""
|
msgstr "Błąd zapisu UART"
|
||||||
|
|
||||||
#: shared-module/usb_hid/Device.c
|
#: shared-module/usb_hid/Device.c
|
||||||
msgid "USB Busy"
|
msgid "USB Busy"
|
||||||
@ -2014,7 +2019,7 @@ msgstr "__init__() powinien zwracać None"
|
|||||||
|
|
||||||
#: py/objtype.c
|
#: py/objtype.c
|
||||||
msgid "__init__() should return None, not '%q'"
|
msgid "__init__() should return None, not '%q'"
|
||||||
msgstr ""
|
msgstr "__init__() powinno zwrócić None, a nie '%q'"
|
||||||
|
|
||||||
#: py/objobject.c
|
#: py/objobject.c
|
||||||
msgid "__new__ arg must be a user-type"
|
msgid "__new__ arg must be a user-type"
|
||||||
@ -3057,11 +3062,11 @@ msgstr "nie dość argumentów przy formatowaniu"
|
|||||||
|
|
||||||
#: extmod/ulab/code/poly/poly.c
|
#: extmod/ulab/code/poly/poly.c
|
||||||
msgid "number of arguments must be 2, or 3"
|
msgid "number of arguments must be 2, or 3"
|
||||||
msgstr ""
|
msgstr "liczba argumentów musi wynosić 2 lub 3"
|
||||||
|
|
||||||
#: extmod/ulab/code/ulab_create.c
|
#: extmod/ulab/code/ulab_create.c
|
||||||
msgid "number of points must be at least 2"
|
msgid "number of points must be at least 2"
|
||||||
msgstr ""
|
msgstr "liczba punktów musi wynosić co najmniej 2"
|
||||||
|
|
||||||
#: py/obj.c
|
#: py/obj.c
|
||||||
msgid "object '%q' is not a tuple or list"
|
msgid "object '%q' is not a tuple or list"
|
||||||
@ -3374,7 +3379,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: shared-bindings/displayio/Bitmap.c
|
#: shared-bindings/displayio/Bitmap.c
|
||||||
msgid "source palette too large"
|
msgid "source palette too large"
|
||||||
msgstr ""
|
msgstr "źródłowa paleta jest zbyt duża"
|
||||||
|
|
||||||
#: py/objstr.c
|
#: py/objstr.c
|
||||||
msgid "start/end indices"
|
msgid "start/end indices"
|
||||||
|
@ -443,6 +443,11 @@ msgstr ""
|
|||||||
"O clock de bits e a seleção de palavras devem compartilhar uma unidade de "
|
"O clock de bits e a seleção de palavras devem compartilhar uma unidade de "
|
||||||
"clock"
|
"clock"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "A profundidade de bits deve ser o múltiplo de 8."
|
msgstr "A profundidade de bits deve ser o múltiplo de 8."
|
||||||
|
@ -435,6 +435,11 @@ msgstr "Under minsta bildfrekvens"
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "Bitklocka och ordval måste dela en klockenhet"
|
msgstr "Bitklocka och ordval måste dela en klockenhet"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "Bitdjup måste vara multipel av 8."
|
msgstr "Bitdjup måste vara multipel av 8."
|
||||||
|
@ -7,7 +7,7 @@ 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-11-04 21:18+0530\n"
|
"POT-Creation-Date: 2020-11-04 21:18+0530\n"
|
||||||
"PO-Revision-Date: 2020-10-28 21:45+0000\n"
|
"PO-Revision-Date: 2020-11-11 19:13+0000\n"
|
||||||
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||||
"Language: zh_Latn_pinyin\n"
|
"Language: zh_Latn_pinyin\n"
|
||||||
@ -15,7 +15,7 @@ msgstr ""
|
|||||||
"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=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Weblate 4.3.2-dev\n"
|
"X-Generator: Weblate 4.4-dev\n"
|
||||||
|
|
||||||
#: main.c
|
#: main.c
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -304,7 +304,7 @@ msgstr "Suǒyǒu I2C wàiwéi qì zhèngzài shǐyòng"
|
|||||||
|
|
||||||
#: ports/esp32s2/peripherals/pcnt_handler.c
|
#: ports/esp32s2/peripherals/pcnt_handler.c
|
||||||
msgid "All PCNT units in use"
|
msgid "All PCNT units in use"
|
||||||
msgstr ""
|
msgstr "suǒ yǒu zhèng zài shǐ yòng zhōng de PCNT dān yuán"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/canio/Listener.c
|
#: ports/atmel-samd/common-hal/canio/Listener.c
|
||||||
#: ports/esp32s2/common-hal/canio/Listener.c
|
#: ports/esp32s2/common-hal/canio/Listener.c
|
||||||
@ -437,6 +437,11 @@ msgstr "Dī yú zuìdī zhèng sùlǜ"
|
|||||||
msgid "Bit clock and word select must share a clock unit"
|
msgid "Bit clock and word select must share a clock unit"
|
||||||
msgstr "Bǐtè shízhōng hé dānzì xuǎnzé bìxū gòngxiǎng shízhōng dānwèi"
|
msgstr "Bǐtè shízhōng hé dānzì xuǎnzé bìxū gòngxiǎng shízhōng dānwèi"
|
||||||
|
|
||||||
|
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Bit depth must be from 1 to 6 inclusive, not %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/audiobusio/PDMIn.c
|
#: shared-bindings/audiobusio/PDMIn.c
|
||||||
msgid "Bit depth must be multiple of 8."
|
msgid "Bit depth must be multiple of 8."
|
||||||
msgstr "Bǐtè shēndù bìxū shì 8 bèi yǐshàng."
|
msgstr "Bǐtè shēndù bìxū shì 8 bèi yǐshàng."
|
||||||
|
@ -12,11 +12,15 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = "GD25Q32C"
|
EXTERNAL_FLASH_DEVICES = "GD25Q32C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
|
CIRCUITPY_FULLBUILD = 0
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_COUNTIO = 0
|
CIRCUITPY_COUNTIO = 0
|
||||||
CIRCUITPY_I2CPERIPHERAL = 0
|
CIRCUITPY_I2CPERIPHERAL = 1
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
|
CIRCUITPY_TOUCHIO = 0
|
||||||
|
CIRCUITPY_ROTARYIO = 0
|
||||||
|
|
||||||
CFLAGS_INLINE_LIMIT = 60
|
CFLAGS_INLINE_LIMIT = 60
|
||||||
|
|
||||||
|
@ -4,17 +4,17 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
|||||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
|
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB11) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA12) },
|
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA12) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB10) },
|
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB10) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D30), MP_ROM_PTR(&pin_PA30) },
|
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_PA30) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D31), MP_ROM_PTR(&pin_PA31) },
|
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_PA31) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA17) },
|
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA17) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA07) },
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA07) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_OVTEMP), MP_ROM_PTR(&pin_PA07) },
|
{ MP_ROM_QSTR(MP_QSTR_OVTEMP), MP_ROM_PTR(&pin_PA07) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA16) },
|
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA16) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) },
|
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) },
|
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA11) },
|
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA11) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SAT_RESET), MP_ROM_PTR(&pin_PA11) },
|
{ MP_ROM_QSTR(MP_QSTR_SAT_RESET), MP_ROM_PTR(&pin_PA11) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA10) },
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SAT_PWR_ENABLE), MP_ROM_PTR(&pin_PA10) },
|
{ MP_ROM_QSTR(MP_QSTR_SAT_PWR_ENABLE), MP_ROM_PTR(&pin_PA10) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA19) },
|
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA19) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_INT_IMU_OBC), MP_ROM_PTR(&pin_PA19) },
|
{ MP_ROM_QSTR(MP_QSTR_INT_IMU_OBC), MP_ROM_PTR(&pin_PA19) },
|
||||||
@ -22,10 +22,17 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
|||||||
{ MP_ROM_QSTR(MP_QSTR_PWRMON_SDA), MP_ROM_PTR(&pin_PA04) },
|
{ MP_ROM_QSTR(MP_QSTR_PWRMON_SDA), MP_ROM_PTR(&pin_PA04) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_PWRMON_SCL), MP_ROM_PTR(&pin_PA05) },
|
{ MP_ROM_QSTR(MP_QSTR_PWRMON_SCL), MP_ROM_PTR(&pin_PA05) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_PWRMON_ALERT), MP_ROM_PTR(&pin_PB03) },
|
{ MP_ROM_QSTR(MP_QSTR_PWRMON_ALERT), MP_ROM_PTR(&pin_PB03) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PB09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB02) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_V_3V3_MEAS), MP_ROM_PTR(&pin_PB09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_V_5V_MEAS), MP_ROM_PTR(&pin_PB02) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_FLASH_SCK), MP_ROM_PTR(&pin_PA23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_FLASH_MOSI), MP_ROM_PTR(&pin_PA22) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_FLASH_MISO), MP_ROM_PTR(&pin_PA21) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_FLASH_CS), MP_ROM_PTR(&pin_PA20) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA06) },
|
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA06) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA06) },
|
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA06) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_I2C_MONITOR), MP_ROM_PTR(&board_i2c_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_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) },
|
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||||
};
|
};
|
||||||
|
@ -26,12 +26,16 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
|||||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB07) },
|
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB07) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PB06) },
|
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PB06) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PB30) },
|
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PB30) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA12) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PB00) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA08) },
|
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA08) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_PA30) },
|
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_PA30) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_PA31) },
|
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_PA31) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PB22) },
|
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PB22) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_INT_IMU), MP_ROM_PTR(&pin_PA12) },
|
{ MP_ROM_QSTR(MP_QSTR_INT_IMU), MP_ROM_PTR(&pin_PA12) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_SAT_POWER), MP_ROM_PTR(&pin_PA15) },
|
{ MP_ROM_QSTR(MP_QSTR_SAT_POWER), MP_ROM_PTR(&pin_PA15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_OVTEMP), MP_ROM_PTR(&pin_PB00) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA08) },
|
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA08) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
{ 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_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||||
|
@ -33,6 +33,10 @@
|
|||||||
#define DEFAULT_UART_BUS_RX (&pin_PA11)
|
#define DEFAULT_UART_BUS_RX (&pin_PA11)
|
||||||
#define DEFAULT_UART_BUS_TX (&pin_PA10)
|
#define DEFAULT_UART_BUS_TX (&pin_PA10)
|
||||||
|
|
||||||
|
// These pins are connected to the external crystal.
|
||||||
|
#define IGNORE_PIN_PA00 1
|
||||||
|
#define IGNORE_PIN_PA01 1
|
||||||
|
|
||||||
// USB is always used internally so skip the pin objects for it.
|
// USB is always used internally so skip the pin objects for it.
|
||||||
#define IGNORE_PIN_PA24 1
|
#define IGNORE_PIN_PA24 1
|
||||||
#define IGNORE_PIN_PA25 1
|
#define IGNORE_PIN_PA25 1
|
||||||
|
@ -326,7 +326,7 @@ static void setup_dma(audiobusio_pdmin_obj_t* self, uint32_t length,
|
|||||||
// higher sample rate than specified. Then after the audio is
|
// higher sample rate than specified. Then after the audio is
|
||||||
// recorded, a more expensive filter non-real-time filter could be
|
// recorded, a more expensive filter non-real-time filter could be
|
||||||
// used to down-sample and low-pass.
|
// used to down-sample and low-pass.
|
||||||
uint16_t sinc_filter [OVERSAMPLING] = {
|
const uint16_t sinc_filter [OVERSAMPLING] = {
|
||||||
0, 2, 9, 21, 39, 63, 94, 132,
|
0, 2, 9, 21, 39, 63, 94, 132,
|
||||||
179, 236, 302, 379, 467, 565, 674, 792,
|
179, 236, 302, 379, 467, 565, 674, 792,
|
||||||
920, 1055, 1196, 1341, 1487, 1633, 1776, 1913,
|
920, 1055, 1196, 1341, 1487, 1633, 1776, 1913,
|
||||||
|
@ -129,7 +129,8 @@ bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t obj) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length) {
|
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length) {
|
||||||
displayio_parallelbus_obj_t* self = MP_OBJ_TO_PTR(obj);
|
displayio_parallelbus_obj_t* self = MP_OBJ_TO_PTR(obj);
|
||||||
common_hal_digitalio_digitalinout_set_value(&self->command, byte_type == DISPLAY_DATA);
|
common_hal_digitalio_digitalinout_set_value(&self->command, byte_type == DISPLAY_DATA);
|
||||||
uint32_t* clear_write = (uint32_t*) &self->write_group->OUTCLR.reg;
|
uint32_t* clear_write = (uint32_t*) &self->write_group->OUTCLR.reg;
|
||||||
|
@ -26,7 +26,83 @@
|
|||||||
|
|
||||||
#include "boards/board.h"
|
#include "boards/board.h"
|
||||||
#include "mpconfigboard.h"
|
#include "mpconfigboard.h"
|
||||||
|
#include "shared-bindings/busio/SPI.h"
|
||||||
|
#include "shared-bindings/displayio/FourWire.h"
|
||||||
#include "shared-bindings/microcontroller/Pin.h"
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
|
#include "shared-module/displayio/__init__.h"
|
||||||
|
#include "supervisor/shared/board.h"
|
||||||
|
|
||||||
|
#define DELAY 0x80
|
||||||
|
|
||||||
|
// This is an ILO373 control chip. The display is a 2.9" grayscale EInk.
|
||||||
|
|
||||||
|
const uint8_t display_start_sequence[] = {
|
||||||
|
0x01, 5, 0x03, 0x00, 0x2b, 0x2b, 0x13, // power setting
|
||||||
|
0x06, 3, 0x17, 0x17, 0x17, // booster soft start
|
||||||
|
0x04, DELAY, 200, // power on and wait 200 ms
|
||||||
|
0x00, 1, 0x7f, // panel setting
|
||||||
|
0x50, 1, 0x97, // CDI setting
|
||||||
|
0x30, 1, 0x3c, // PLL set to 50 Hx (M = 7, N = 4)
|
||||||
|
0x61, 3, 0x80, 0x01, 0x28, // Resolution
|
||||||
|
0x82, DELAY | 1, 0x12, 50, // VCM DC and delay 50ms
|
||||||
|
|
||||||
|
// Look up tables for voltage sequence for pixel transition
|
||||||
|
// Common voltage
|
||||||
|
0x20, 0x2a,
|
||||||
|
0x00, 0x0a, 0x00, 0x00, 0x00, 0x01,
|
||||||
|
0x60, 0x14, 0x14, 0x00, 0x00, 0x01,
|
||||||
|
0x00, 0x14, 0x00, 0x00, 0x00, 0x01,
|
||||||
|
0x00, 0x13, 0x0a, 0x01, 0x00, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
// White to white
|
||||||
|
0x21, 0x2a,
|
||||||
|
0x40, 0x0a, 0x00, 0x00, 0x00, 0x01,
|
||||||
|
0x90, 0x14, 0x14, 0x00, 0x00, 0x01,
|
||||||
|
0x10, 0x14, 0x0a, 0x00, 0x00, 0x01,
|
||||||
|
0xa0, 0x13, 0x01, 0x00, 0x00, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
// Black to white
|
||||||
|
0x22, 0x2a,
|
||||||
|
0x40, 0x0a, 0x00, 0x00, 0x00, 0x01,
|
||||||
|
0x90, 0x14, 0x14, 0x00, 0x00, 0x01,
|
||||||
|
0x00, 0x14, 0x0a, 0x00, 0x00, 0x01,
|
||||||
|
0x99, 0x0c, 0x01, 0x03, 0x04, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
// White to black
|
||||||
|
0x23, 0x2a,
|
||||||
|
0x40, 0x0a, 0x00, 0x00, 0x00, 0x01,
|
||||||
|
0x90, 0x14, 0x14, 0x00, 0x00, 0x01,
|
||||||
|
0x00, 0x14, 0x0a, 0x00, 0x00, 0x01,
|
||||||
|
0x99, 0x0b, 0x04, 0x04, 0x01, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
// Black to black
|
||||||
|
0x24, 0x2a,
|
||||||
|
0x80, 0x0a, 0x00, 0x00, 0x00, 0x01,
|
||||||
|
0x90, 0x14, 0x14, 0x00, 0x00, 0x01,
|
||||||
|
0x20, 0x14, 0x0a, 0x00, 0x00, 0x01,
|
||||||
|
0x50, 0x13, 0x01, 0x00, 0x00, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint8_t display_stop_sequence[] = {
|
||||||
|
0x50, 0x01, 0x17, // CDI Setting
|
||||||
|
0x82, 0x01, 0x00, // VCM DC to -0.1V
|
||||||
|
0x02, 0x00 // Power off
|
||||||
|
};
|
||||||
|
|
||||||
void board_init(void) {
|
void board_init(void) {
|
||||||
// USB
|
// USB
|
||||||
@ -36,6 +112,52 @@ void board_init(void) {
|
|||||||
// Debug UART
|
// Debug UART
|
||||||
common_hal_never_reset_pin(&pin_GPIO43);
|
common_hal_never_reset_pin(&pin_GPIO43);
|
||||||
common_hal_never_reset_pin(&pin_GPIO44);
|
common_hal_never_reset_pin(&pin_GPIO44);
|
||||||
|
|
||||||
|
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
|
||||||
|
common_hal_busio_spi_construct(spi, &pin_GPIO36, &pin_GPIO35, NULL);
|
||||||
|
common_hal_busio_spi_never_reset(spi);
|
||||||
|
|
||||||
|
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
|
||||||
|
bus->base.type = &displayio_fourwire_type;
|
||||||
|
common_hal_displayio_fourwire_construct(bus,
|
||||||
|
spi,
|
||||||
|
&pin_GPIO7, // EPD_DC Command or data
|
||||||
|
&pin_GPIO8, // EPD_CS Chip select
|
||||||
|
&pin_GPIO6, // EPD_RST Reset
|
||||||
|
4000000, // Baudrate
|
||||||
|
0, // Polarity
|
||||||
|
0); // Phase
|
||||||
|
|
||||||
|
displayio_epaperdisplay_obj_t* display = &displays[0].epaper_display;
|
||||||
|
display->base.type = &displayio_epaperdisplay_type;
|
||||||
|
common_hal_displayio_epaperdisplay_construct(
|
||||||
|
display,
|
||||||
|
bus,
|
||||||
|
display_start_sequence, sizeof(display_start_sequence),
|
||||||
|
display_stop_sequence, sizeof(display_stop_sequence),
|
||||||
|
296, // width
|
||||||
|
128, // height
|
||||||
|
160, // ram_width
|
||||||
|
296, // ram_height
|
||||||
|
0, // colstart
|
||||||
|
0, // rowstart
|
||||||
|
270, // rotation
|
||||||
|
NO_COMMAND, // set_column_window_command
|
||||||
|
NO_COMMAND, // set_row_window_command
|
||||||
|
NO_COMMAND, // set_current_column_command
|
||||||
|
NO_COMMAND, // set_current_row_command
|
||||||
|
0x10, // write_black_ram_command
|
||||||
|
false, // black_bits_inverted
|
||||||
|
0x13, // write_color_ram_command
|
||||||
|
false, // color_bits_inverted
|
||||||
|
0x000000, // highlight_color
|
||||||
|
0x12, // refresh_display_command
|
||||||
|
1.0, // refresh_time
|
||||||
|
&pin_GPIO5, // busy_pin
|
||||||
|
false, // busy_state
|
||||||
|
5.0, // seconds_per_frame
|
||||||
|
false, // always_toggle_chip_select
|
||||||
|
true); // grayscale
|
||||||
}
|
}
|
||||||
|
|
||||||
bool board_requests_safe_mode(void) {
|
bool board_requests_safe_mode(void) {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "shared-bindings/board/__init__.h"
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
#include "shared-module/displayio/__init__.h"
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_AD1), MP_ROM_PTR(&pin_GPIO18) },
|
{ MP_ROM_QSTR(MP_QSTR_AD1), MP_ROM_PTR(&pin_GPIO18) },
|
||||||
@ -37,5 +39,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
|||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
{ 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_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].epaper_display)}
|
||||||
};
|
};
|
||||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
//Micropython setup
|
//Micropython setup
|
||||||
|
|
||||||
#define MICROPY_HW_BOARD_NAME "microS2"
|
#define MICROPY_HW_BOARD_NAME "microS2"
|
||||||
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
#define MICROPY_HW_MCU_NAME "ESP32S2"
|
||||||
|
|
||||||
@ -33,8 +32,20 @@
|
|||||||
#define MICROPY_HW_BUTTON (&pin_GPIO0)
|
#define MICROPY_HW_BUTTON (&pin_GPIO0)
|
||||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO33)
|
#define MICROPY_HW_NEOPIXEL (&pin_GPIO33)
|
||||||
|
|
||||||
|
// Default bus pins
|
||||||
|
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO1)
|
||||||
|
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO2)
|
||||||
|
|
||||||
|
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO36)
|
||||||
|
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO35)
|
||||||
|
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO37)
|
||||||
|
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)
|
||||||
|
|
||||||
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
|
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
|
||||||
|
|
||||||
|
// Explanation of how a user got into safe mode.
|
||||||
#define BOARD_USER_SAFE_MODE_ACTION translate("pressing boot button at start up.\n")
|
#define BOARD_USER_SAFE_MODE_ACTION translate("pressing boot button at start up.\n")
|
||||||
|
|
||||||
#define AUTORESET_DELAY_MS 500
|
#define AUTORESET_DELAY_MS 500
|
||||||
|
@ -37,3 +37,13 @@
|
|||||||
|
|
||||||
// #define MICROPY_HW_APA102_MOSI (&pin_GPIO40)
|
// #define MICROPY_HW_APA102_MOSI (&pin_GPIO40)
|
||||||
// #define MICROPY_HW_APA102_SCK (&pin_GPIO45)
|
// #define MICROPY_HW_APA102_SCK (&pin_GPIO45)
|
||||||
|
|
||||||
|
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO9)
|
||||||
|
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO8)
|
||||||
|
|
||||||
|
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO36)
|
||||||
|
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO35)
|
||||||
|
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO37)
|
||||||
|
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_GPIO44)
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_GPIO43)
|
||||||
|
@ -57,7 +57,8 @@ bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t obj) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length) {
|
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,14 +29,20 @@
|
|||||||
#define PCNT_UNIT_ACTIVE 1
|
#define PCNT_UNIT_ACTIVE 1
|
||||||
#define PCNT_UNIT_INACTIVE 0
|
#define PCNT_UNIT_INACTIVE 0
|
||||||
|
|
||||||
static uint8_t pcnt_state[4];
|
static uint8_t pcnt_unit_state[4];
|
||||||
|
|
||||||
|
void peripherals_pcnt_reset(void) {
|
||||||
|
for (uint8_t i = 0; i<=3; i++) {
|
||||||
|
pcnt_unit_state[i] = PCNT_UNIT_INACTIVE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int peripherals_pcnt_init(pcnt_config_t pcnt_config) {
|
int peripherals_pcnt_init(pcnt_config_t pcnt_config) {
|
||||||
// Look for available pcnt unit
|
// Look for available pcnt unit
|
||||||
for (uint8_t i = 0; i<=3; i++) {
|
for (uint8_t i = 0; i<=3; i++) {
|
||||||
if (pcnt_state[i] == PCNT_UNIT_INACTIVE) {
|
if (pcnt_unit_state[i] == PCNT_UNIT_INACTIVE) {
|
||||||
pcnt_config.unit = (pcnt_unit_t)i;
|
pcnt_config.unit = (pcnt_unit_t)i;
|
||||||
pcnt_state[i] = PCNT_UNIT_ACTIVE;
|
pcnt_unit_state[i] = PCNT_UNIT_ACTIVE;
|
||||||
break;
|
break;
|
||||||
} else if (i == 3) {
|
} else if (i == 3) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -46,10 +52,6 @@ int peripherals_pcnt_init(pcnt_config_t pcnt_config) {
|
|||||||
// Initialize PCNT unit
|
// Initialize PCNT unit
|
||||||
pcnt_unit_config(&pcnt_config);
|
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
|
// Initialize PCNT's counter
|
||||||
pcnt_counter_pause(pcnt_config.unit);
|
pcnt_counter_pause(pcnt_config.unit);
|
||||||
pcnt_counter_clear(pcnt_config.unit);
|
pcnt_counter_clear(pcnt_config.unit);
|
||||||
@ -61,6 +63,6 @@ int peripherals_pcnt_init(pcnt_config_t pcnt_config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void peripherals_pcnt_deinit(pcnt_unit_t* unit) {
|
void peripherals_pcnt_deinit(pcnt_unit_t* unit) {
|
||||||
pcnt_state[*unit] = PCNT_UNIT_INACTIVE;
|
pcnt_unit_state[*unit] = PCNT_UNIT_INACTIVE;
|
||||||
*unit = PCNT_UNIT_MAX;
|
*unit = PCNT_UNIT_MAX;
|
||||||
}
|
}
|
||||||
|
@ -31,5 +31,6 @@
|
|||||||
|
|
||||||
extern int peripherals_pcnt_init(pcnt_config_t pcnt_config);
|
extern int peripherals_pcnt_init(pcnt_config_t pcnt_config);
|
||||||
extern void peripherals_pcnt_deinit(pcnt_unit_t* unit);
|
extern void peripherals_pcnt_deinit(pcnt_unit_t* unit);
|
||||||
|
extern void peripherals_pcnt_reset(void);
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_ESP32S2_PERIPHERALS_PCNT_HANDLER_H
|
#endif // MICROPY_INCLUDED_ESP32S2_PERIPHERALS_PCNT_HANDLER_H
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
#include "shared-bindings/rtc/__init__.h"
|
#include "shared-bindings/rtc/__init__.h"
|
||||||
|
|
||||||
#include "peripherals/rmt.h"
|
#include "peripherals/rmt.h"
|
||||||
|
#include "peripherals/pcnt.h"
|
||||||
#include "components/heap/include/esp_heap_caps.h"
|
#include "components/heap/include/esp_heap_caps.h"
|
||||||
#include "components/soc/soc/esp32s2/include/soc/cache_memory.h"
|
#include "components/soc/soc/esp32s2/include/soc/cache_memory.h"
|
||||||
|
|
||||||
@ -117,6 +118,10 @@ void reset_port(void) {
|
|||||||
uart_reset();
|
uart_reset();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CIRCUITPY_COUNTIO) || defined(CIRCUITPY_ROTARYIO)
|
||||||
|
peripherals_pcnt_reset();
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CIRCUITPY_RTC
|
#if CIRCUITPY_RTC
|
||||||
rtc_reset();
|
rtc_reset();
|
||||||
#endif
|
#endif
|
||||||
|
@ -57,7 +57,8 @@ bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t obj) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length) {
|
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +141,8 @@ bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t obj) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// This ignores chip_select behaviour because data is clocked in by the write line toggling.
|
// This ignores chip_select behaviour because data is clocked in by the write line toggling.
|
||||||
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length) {
|
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length) {
|
||||||
displayio_parallelbus_obj_t* self = MP_OBJ_TO_PTR(obj);
|
displayio_parallelbus_obj_t* self = MP_OBJ_TO_PTR(obj);
|
||||||
common_hal_digitalio_digitalinout_set_value(&self->command, byte_type == DISPLAY_DATA);
|
common_hal_digitalio_digitalinout_set_value(&self->command, byte_type == DISPLAY_DATA);
|
||||||
uint32_t* clear_write = (uint32_t*) &self->write_group->OUTCLR;
|
uint32_t* clear_write = (uint32_t*) &self->write_group->OUTCLR;
|
||||||
|
@ -57,7 +57,8 @@ bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t obj) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length) {
|
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,7 +186,7 @@ typedef long mp_off_t;
|
|||||||
#define MICROPY_CPYTHON_COMPAT (CIRCUITPY_FULL_BUILD)
|
#define MICROPY_CPYTHON_COMPAT (CIRCUITPY_FULL_BUILD)
|
||||||
#define MICROPY_PY_BUILTINS_POW3 (CIRCUITPY_FULL_BUILD)
|
#define MICROPY_PY_BUILTINS_POW3 (CIRCUITPY_FULL_BUILD)
|
||||||
#define MICROPY_COMP_FSTRING_LITERAL (MICROPY_CPYTHON_COMPAT)
|
#define MICROPY_COMP_FSTRING_LITERAL (MICROPY_CPYTHON_COMPAT)
|
||||||
#define MICROPY_MODULE_WEAK_LINKS (CIRCUITPY_FULL_BUILD)
|
#define MICROPY_MODULE_WEAK_LINKS (0)
|
||||||
#define MICROPY_PY_ALL_SPECIAL_METHODS (CIRCUITPY_FULL_BUILD)
|
#define MICROPY_PY_ALL_SPECIAL_METHODS (CIRCUITPY_FULL_BUILD)
|
||||||
#define MICROPY_PY_BUILTINS_COMPLEX (CIRCUITPY_FULL_BUILD)
|
#define MICROPY_PY_BUILTINS_COMPLEX (CIRCUITPY_FULL_BUILD)
|
||||||
#define MICROPY_PY_BUILTINS_FROZENSET (CIRCUITPY_FULL_BUILD)
|
#define MICROPY_PY_BUILTINS_FROZENSET (CIRCUITPY_FULL_BUILD)
|
||||||
|
@ -58,24 +58,26 @@
|
|||||||
//| r"""Create a Display object on the given display bus (`FourWire`, `ParallelBus` or `I2CDisplay`).
|
//| r"""Create a Display object on the given display bus (`FourWire`, `ParallelBus` or `I2CDisplay`).
|
||||||
//|
|
//|
|
||||||
//| The ``init_sequence`` is bitpacked to minimize the ram impact. Every command begins with a
|
//| The ``init_sequence`` is bitpacked to minimize the ram impact. Every command begins with a
|
||||||
//| command byte followed by a byte to determine the parameter count and if a delay is need after.
|
//| command byte followed by a byte to determine the parameter count and delay. When the top bit
|
||||||
//| When the top bit of the second byte is 1, the next byte will be the delay time in milliseconds.
|
//| of the second byte is 1 (0x80), a delay will occur after the command parameters are sent.
|
||||||
//| The remaining 7 bits are the parameter count excluding any delay byte. The third through final
|
//| The remaining 7 bits are the parameter count excluding any delay byte. The bytes following
|
||||||
//| bytes are the remaining command parameters. The next byte will begin a new command definition.
|
//| are the parameters. When the delay bit is set, a single byte after the parameters specifies
|
||||||
//| Here is a portion of ILI9341 init code:
|
//| the delay duration in milliseconds. The value 0xff will lead to an extra long 500 ms delay
|
||||||
|
//| instead of 255 ms. The next byte will begin a new command definition.
|
||||||
|
//| Here is an example:
|
||||||
//|
|
//|
|
||||||
//| .. code-block:: python
|
//| .. code-block:: python
|
||||||
//|
|
//|
|
||||||
//| init_sequence = (b"\xe1\x0f\x00\x0E\x14\x03\x11\x07\x31\xC1\x48\x08\x0F\x0C\x31\x36\x0F" # Set Gamma
|
//| init_sequence = (b"\xe1\x0f\x00\x0E\x14\x03\x11\x07\x31\xC1\x48\x08\x0F\x0C\x31\x36\x0F" # Set Gamma
|
||||||
//| b"\x11\x80\x78"# Exit Sleep then delay 0x78 (120ms)
|
//| b"\x11\x80\x78"# Exit Sleep then delay 0x78 (120ms)
|
||||||
//| b"\x29\x80\x78"# Display on then delay 0x78 (120ms)
|
//| b"\x29\x81\xaa\x78"# Display on then delay 0x78 (120ms)
|
||||||
//| )
|
//| )
|
||||||
//| display = displayio.Display(display_bus, init_sequence, width=320, height=240)
|
//| display = displayio.Display(display_bus, init_sequence, width=320, height=240)
|
||||||
//|
|
//|
|
||||||
//| The first command is 0xe1 with 15 (0xf) parameters following. The second and third are 0x11 and
|
//| The first command is 0xe1 with 15 (0xf) parameters following. The second is 0x11 with 0
|
||||||
//| 0x29 respectively with delays (0x80) of 120ms (0x78) and no parameters. Multiple byte literals
|
//| parameters and a 120ms (0x78) delay. The third command is 0x29 with one parameter 0xaa and a
|
||||||
//| (b"") are merged together on load. The parens are needed to allow byte literals on subsequent
|
//| 120ms delay (0x78). Multiple byte literals (b"") are merged together on load. The parens
|
||||||
//| lines.
|
//| are needed to allow byte literals on subsequent lines.
|
||||||
//|
|
//|
|
||||||
//| The initialization sequence should always leave the display memory access inline with the scan
|
//| The initialization sequence should always leave the display memory access inline with the scan
|
||||||
//| of the display to minimize tearing artifacts.
|
//| of the display to minimize tearing artifacts.
|
||||||
|
@ -65,11 +65,12 @@
|
|||||||
//| """Create a EPaperDisplay object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`).
|
//| """Create a EPaperDisplay object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`).
|
||||||
//|
|
//|
|
||||||
//| The ``start_sequence`` and ``stop_sequence`` are bitpacked to minimize the ram impact. Every
|
//| The ``start_sequence`` and ``stop_sequence`` are bitpacked to minimize the ram impact. Every
|
||||||
//| command begins with a command byte followed by a byte to determine the parameter count and if
|
//| command begins with a command byte followed by a byte to determine the parameter count and
|
||||||
//| a delay is need after. When the top bit of the second byte is 1, the next byte will be the
|
//| delay. When the top bit of the second byte is 1 (0x80), a delay will occur after the command
|
||||||
//| delay time in milliseconds. The remaining 7 bits are the parameter count excluding any delay
|
//| parameters are sent. The remaining 7 bits are the parameter count excluding any delay
|
||||||
//| byte. The third through final bytes are the remaining command parameters. The next byte will
|
//| byte. The bytes following are the parameters. When the delay bit is set, a single byte after
|
||||||
//| begin a new command definition.
|
//| the parameters specifies the delay duration in milliseconds. The value 0xff will lead to an
|
||||||
|
//| extra long 500 ms delay instead of 255 ms. The next byte will begin a new command definition.
|
||||||
//|
|
//|
|
||||||
//| :param display_bus: The bus that the display is connected to
|
//| :param display_bus: The bus that the display is connected to
|
||||||
//| :type _DisplayBus: displayio.FourWire or displayio.ParallelBus
|
//| :type _DisplayBus: displayio.FourWire or displayio.ParallelBus
|
||||||
@ -244,6 +245,23 @@ const mp_obj_property_t displayio_epaperdisplay_time_to_refresh_obj = {
|
|||||||
(mp_obj_t)&mp_const_none_obj},
|
(mp_obj_t)&mp_const_none_obj},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//| busy: bool
|
||||||
|
//| """True when the display is refreshing. This uses the ``busy_pin`` when available or the
|
||||||
|
//| ``refresh_time`` otherwise."""
|
||||||
|
//|
|
||||||
|
STATIC mp_obj_t displayio_epaperdisplay_obj_get_busy(mp_obj_t self_in) {
|
||||||
|
displayio_epaperdisplay_obj_t *self = native_display(self_in);
|
||||||
|
return mp_obj_new_bool(common_hal_displayio_epaperdisplay_get_busy(self));
|
||||||
|
}
|
||||||
|
MP_DEFINE_CONST_FUN_OBJ_1(displayio_epaperdisplay_get_busy_obj, displayio_epaperdisplay_obj_get_busy);
|
||||||
|
|
||||||
|
const mp_obj_property_t displayio_epaperdisplay_busy_obj = {
|
||||||
|
.base.type = &mp_type_property,
|
||||||
|
.proxy = {(mp_obj_t)&displayio_epaperdisplay_get_busy_obj,
|
||||||
|
(mp_obj_t)&mp_const_none_obj,
|
||||||
|
(mp_obj_t)&mp_const_none_obj},
|
||||||
|
};
|
||||||
|
|
||||||
//| width: int
|
//| width: int
|
||||||
//| """Gets the width of the display in pixels"""
|
//| """Gets the width of the display in pixels"""
|
||||||
//|
|
//|
|
||||||
@ -300,6 +318,7 @@ STATIC const mp_rom_map_elem_t displayio_epaperdisplay_locals_dict_table[] = {
|
|||||||
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&displayio_epaperdisplay_width_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&displayio_epaperdisplay_width_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&displayio_epaperdisplay_height_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&displayio_epaperdisplay_height_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_bus), MP_ROM_PTR(&displayio_epaperdisplay_bus_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_bus), MP_ROM_PTR(&displayio_epaperdisplay_bus_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_busy), MP_ROM_PTR(&displayio_epaperdisplay_busy_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_time_to_refresh), MP_ROM_PTR(&displayio_epaperdisplay_time_to_refresh_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_time_to_refresh), MP_ROM_PTR(&displayio_epaperdisplay_time_to_refresh_obj) },
|
||||||
};
|
};
|
||||||
STATIC MP_DEFINE_CONST_DICT(displayio_epaperdisplay_locals_dict, displayio_epaperdisplay_locals_dict_table);
|
STATIC MP_DEFINE_CONST_DICT(displayio_epaperdisplay_locals_dict, displayio_epaperdisplay_locals_dict_table);
|
||||||
|
@ -39,7 +39,7 @@ extern const mp_obj_type_t displayio_epaperdisplay_type;
|
|||||||
#define NO_COMMAND 0x100
|
#define NO_COMMAND 0x100
|
||||||
|
|
||||||
void common_hal_displayio_epaperdisplay_construct(displayio_epaperdisplay_obj_t* self,
|
void common_hal_displayio_epaperdisplay_construct(displayio_epaperdisplay_obj_t* self,
|
||||||
mp_obj_t bus, uint8_t* start_sequence, uint16_t start_sequence_len, uint8_t* stop_sequence, uint16_t stop_sequence_len,
|
mp_obj_t bus, const uint8_t* start_sequence, uint16_t start_sequence_len, const uint8_t* stop_sequence, uint16_t stop_sequence_len,
|
||||||
uint16_t width, uint16_t height, uint16_t ram_width, uint16_t ram_height, int16_t colstart, int16_t rowstart, uint16_t rotation,
|
uint16_t width, uint16_t height, uint16_t ram_width, uint16_t ram_height, int16_t colstart, int16_t rowstart, uint16_t rotation,
|
||||||
uint16_t set_column_window_command, uint16_t set_row_window_command,
|
uint16_t set_column_window_command, uint16_t set_row_window_command,
|
||||||
uint16_t set_current_column_command, uint16_t set_current_row_command,
|
uint16_t set_current_column_command, uint16_t set_current_row_command,
|
||||||
@ -52,6 +52,7 @@ bool common_hal_displayio_epaperdisplay_show(displayio_epaperdisplay_obj_t* self
|
|||||||
|
|
||||||
// Returns time in milliseconds.
|
// Returns time in milliseconds.
|
||||||
uint32_t common_hal_displayio_epaperdisplay_get_time_to_refresh(displayio_epaperdisplay_obj_t* self);
|
uint32_t common_hal_displayio_epaperdisplay_get_time_to_refresh(displayio_epaperdisplay_obj_t* self);
|
||||||
|
bool common_hal_displayio_epaperdisplay_get_busy(displayio_epaperdisplay_obj_t* self);
|
||||||
|
|
||||||
uint16_t common_hal_displayio_epaperdisplay_get_width(displayio_epaperdisplay_obj_t* self);
|
uint16_t common_hal_displayio_epaperdisplay_get_width(displayio_epaperdisplay_obj_t* self);
|
||||||
uint16_t common_hal_displayio_epaperdisplay_get_height(displayio_epaperdisplay_obj_t* self);
|
uint16_t common_hal_displayio_epaperdisplay_get_height(displayio_epaperdisplay_obj_t* self);
|
||||||
|
@ -48,7 +48,8 @@ bool common_hal_displayio_fourwire_bus_free(mp_obj_t self);
|
|||||||
|
|
||||||
bool common_hal_displayio_fourwire_begin_transaction(mp_obj_t self);
|
bool common_hal_displayio_fourwire_begin_transaction(mp_obj_t self);
|
||||||
|
|
||||||
void common_hal_displayio_fourwire_send(mp_obj_t self, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length);
|
void common_hal_displayio_fourwire_send(mp_obj_t self, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length);
|
||||||
|
|
||||||
void common_hal_displayio_fourwire_end_transaction(mp_obj_t self);
|
void common_hal_displayio_fourwire_end_transaction(mp_obj_t self);
|
||||||
|
|
||||||
|
@ -44,7 +44,8 @@ bool common_hal_displayio_i2cdisplay_bus_free(mp_obj_t self);
|
|||||||
|
|
||||||
bool common_hal_displayio_i2cdisplay_begin_transaction(mp_obj_t self);
|
bool common_hal_displayio_i2cdisplay_begin_transaction(mp_obj_t self);
|
||||||
|
|
||||||
void common_hal_displayio_i2cdisplay_send(mp_obj_t self, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length);
|
void common_hal_displayio_i2cdisplay_send(mp_obj_t self, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length);
|
||||||
|
|
||||||
void common_hal_displayio_i2cdisplay_end_transaction(mp_obj_t self);
|
void common_hal_displayio_i2cdisplay_end_transaction(mp_obj_t self);
|
||||||
|
|
||||||
|
@ -46,7 +46,8 @@ bool common_hal_displayio_parallelbus_bus_free(mp_obj_t self);
|
|||||||
|
|
||||||
bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t self);
|
bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t self);
|
||||||
|
|
||||||
void common_hal_displayio_parallelbus_send(mp_obj_t self, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length);
|
void common_hal_displayio_parallelbus_send(mp_obj_t self, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length);
|
||||||
|
|
||||||
void common_hal_displayio_parallelbus_end_transaction(mp_obj_t self);
|
void common_hal_displayio_parallelbus_end_transaction(mp_obj_t self);
|
||||||
|
|
||||||
|
@ -42,7 +42,8 @@ typedef enum {
|
|||||||
typedef bool (*display_bus_bus_reset)(mp_obj_t bus);
|
typedef bool (*display_bus_bus_reset)(mp_obj_t bus);
|
||||||
typedef bool (*display_bus_bus_free)(mp_obj_t bus);
|
typedef bool (*display_bus_bus_free)(mp_obj_t bus);
|
||||||
typedef bool (*display_bus_begin_transaction)(mp_obj_t bus);
|
typedef bool (*display_bus_begin_transaction)(mp_obj_t bus);
|
||||||
typedef void (*display_bus_send)(mp_obj_t bus, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length);
|
typedef void (*display_bus_send)(mp_obj_t bus, display_byte_type_t byte_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length);
|
||||||
typedef void (*display_bus_end_transaction)(mp_obj_t bus);
|
typedef void (*display_bus_end_transaction)(mp_obj_t bus);
|
||||||
|
|
||||||
void common_hal_displayio_release_displays(void);
|
void common_hal_displayio_release_displays(void);
|
||||||
|
@ -197,6 +197,11 @@ STATIC mp_obj_t rgbmatrix_rgbmatrix_make_new(const mp_obj_type_t *type, size_t n
|
|||||||
uint8_t clock_pin = validate_pin(args[ARG_clock_pin].u_obj);
|
uint8_t clock_pin = validate_pin(args[ARG_clock_pin].u_obj);
|
||||||
uint8_t latch_pin = validate_pin(args[ARG_latch_pin].u_obj);
|
uint8_t latch_pin = validate_pin(args[ARG_latch_pin].u_obj);
|
||||||
uint8_t output_enable_pin = validate_pin(args[ARG_output_enable_pin].u_obj);
|
uint8_t output_enable_pin = validate_pin(args[ARG_output_enable_pin].u_obj);
|
||||||
|
int bit_depth = args[ARG_bit_depth].u_int;
|
||||||
|
|
||||||
|
if (bit_depth <= 0 || bit_depth > 6) {
|
||||||
|
mp_raise_ValueError_varg(translate("Bit depth must be from 1 to 6 inclusive, not %d"), bit_depth);
|
||||||
|
}
|
||||||
|
|
||||||
validate_pins(MP_QSTR_rgb_pins, rgb_pins, MP_ARRAY_SIZE(self->rgb_pins), args[ARG_rgb_list].u_obj, &rgb_count);
|
validate_pins(MP_QSTR_rgb_pins, rgb_pins, MP_ARRAY_SIZE(self->rgb_pins), args[ARG_rgb_list].u_obj, &rgb_count);
|
||||||
validate_pins(MP_QSTR_addr_pins, addr_pins, MP_ARRAY_SIZE(self->addr_pins), args[ARG_addr_list].u_obj, &addr_count);
|
validate_pins(MP_QSTR_addr_pins, addr_pins, MP_ARRAY_SIZE(self->addr_pins), args[ARG_addr_list].u_obj, &addr_count);
|
||||||
@ -229,7 +234,7 @@ STATIC mp_obj_t rgbmatrix_rgbmatrix_make_new(const mp_obj_type_t *type, size_t n
|
|||||||
|
|
||||||
common_hal_rgbmatrix_rgbmatrix_construct(self,
|
common_hal_rgbmatrix_rgbmatrix_construct(self,
|
||||||
args[ARG_width].u_int,
|
args[ARG_width].u_int,
|
||||||
args[ARG_bit_depth].u_int,
|
bit_depth,
|
||||||
rgb_count, rgb_pins,
|
rgb_count, rgb_pins,
|
||||||
addr_count, addr_pins,
|
addr_count, addr_pins,
|
||||||
clock_pin, latch_pin, output_enable_pin,
|
clock_pin, latch_pin, output_enable_pin,
|
||||||
|
@ -55,7 +55,7 @@ uint8_t displayio_colorconverter_compute_luma(uint32_t color_rgb888) {
|
|||||||
uint32_t r8 = (color_rgb888 >> 16);
|
uint32_t r8 = (color_rgb888 >> 16);
|
||||||
uint32_t g8 = (color_rgb888 >> 8) & 0xff;
|
uint32_t g8 = (color_rgb888 >> 8) & 0xff;
|
||||||
uint32_t b8 = color_rgb888 & 0xff;
|
uint32_t b8 = color_rgb888 & 0xff;
|
||||||
return (r8 * 19) / 255 + (g8 * 182) / 255 + (b8 + 54) / 255;
|
return (r8 * 19 + g8 * 182 + b8 * 54) / 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t displayio_colorconverter_compute_chroma(uint32_t color_rgb888) {
|
uint8_t displayio_colorconverter_compute_chroma(uint32_t color_rgb888) {
|
||||||
|
@ -43,7 +43,8 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
void common_hal_displayio_epaperdisplay_construct(displayio_epaperdisplay_obj_t* self,
|
void common_hal_displayio_epaperdisplay_construct(displayio_epaperdisplay_obj_t* self,
|
||||||
mp_obj_t bus, uint8_t* start_sequence, uint16_t start_sequence_len, uint8_t* stop_sequence, uint16_t stop_sequence_len,
|
mp_obj_t bus, const uint8_t* start_sequence, uint16_t start_sequence_len,
|
||||||
|
const uint8_t* stop_sequence, uint16_t stop_sequence_len,
|
||||||
uint16_t width, uint16_t height, uint16_t ram_width, uint16_t ram_height,
|
uint16_t width, uint16_t height, uint16_t ram_width, uint16_t ram_height,
|
||||||
int16_t colstart, int16_t rowstart, uint16_t rotation,
|
int16_t colstart, int16_t rowstart, uint16_t rotation,
|
||||||
uint16_t set_column_window_command, uint16_t set_row_window_command,
|
uint16_t set_column_window_command, uint16_t set_row_window_command,
|
||||||
@ -133,14 +134,15 @@ STATIC void wait_for_busy(displayio_epaperdisplay_obj_t* self) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC void send_command_sequence(displayio_epaperdisplay_obj_t* self, bool should_wait_for_busy, uint8_t* sequence, uint32_t sequence_len) {
|
STATIC void send_command_sequence(displayio_epaperdisplay_obj_t* self,
|
||||||
|
bool should_wait_for_busy, const uint8_t* sequence, uint32_t sequence_len) {
|
||||||
uint32_t i = 0;
|
uint32_t i = 0;
|
||||||
while (i < sequence_len) {
|
while (i < sequence_len) {
|
||||||
uint8_t *cmd = sequence + i;
|
const uint8_t *cmd = sequence + i;
|
||||||
uint8_t data_size = *(cmd + 1);
|
uint8_t data_size = *(cmd + 1);
|
||||||
bool delay = (data_size & DELAY) != 0;
|
bool delay = (data_size & DELAY) != 0;
|
||||||
data_size &= ~DELAY;
|
data_size &= ~DELAY;
|
||||||
uint8_t *data = cmd + 2;
|
const uint8_t *data = cmd + 2;
|
||||||
displayio_display_core_begin_transaction(&self->core);
|
displayio_display_core_begin_transaction(&self->core);
|
||||||
self->core.send(self->core.bus, DISPLAY_COMMAND, self->chip_select, cmd, 1);
|
self->core.send(self->core.bus, DISPLAY_COMMAND, self->chip_select, cmd, 1);
|
||||||
self->core.send(self->core.bus, DISPLAY_DATA, self->chip_select, data, data_size);
|
self->core.send(self->core.bus, DISPLAY_DATA, self->chip_select, data, data_size);
|
||||||
@ -358,6 +360,11 @@ void displayio_epaperdisplay_background(displayio_epaperdisplay_obj_t* self) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool common_hal_displayio_epaperdisplay_get_busy(displayio_epaperdisplay_obj_t* self) {
|
||||||
|
displayio_epaperdisplay_background(self);
|
||||||
|
return self->refreshing;
|
||||||
|
}
|
||||||
|
|
||||||
void release_epaperdisplay(displayio_epaperdisplay_obj_t* self) {
|
void release_epaperdisplay(displayio_epaperdisplay_obj_t* self) {
|
||||||
if (self->refreshing) {
|
if (self->refreshing) {
|
||||||
wait_for_busy(self);
|
wait_for_busy(self);
|
||||||
@ -375,8 +382,8 @@ void release_epaperdisplay(displayio_epaperdisplay_obj_t* self) {
|
|||||||
|
|
||||||
void displayio_epaperdisplay_collect_ptrs(displayio_epaperdisplay_obj_t* self) {
|
void displayio_epaperdisplay_collect_ptrs(displayio_epaperdisplay_obj_t* self) {
|
||||||
displayio_display_core_collect_ptrs(&self->core);
|
displayio_display_core_collect_ptrs(&self->core);
|
||||||
gc_collect_ptr(self->start_sequence);
|
gc_collect_ptr((void *) self->start_sequence);
|
||||||
gc_collect_ptr(self->stop_sequence);
|
gc_collect_ptr((void *) self->stop_sequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool maybe_refresh_epaperdisplay(void) {
|
bool maybe_refresh_epaperdisplay(void) {
|
||||||
|
@ -38,9 +38,9 @@ typedef struct {
|
|||||||
displayio_display_core_t core;
|
displayio_display_core_t core;
|
||||||
digitalio_digitalinout_obj_t busy;
|
digitalio_digitalinout_obj_t busy;
|
||||||
uint32_t milliseconds_per_frame;
|
uint32_t milliseconds_per_frame;
|
||||||
uint8_t* start_sequence;
|
const uint8_t* start_sequence;
|
||||||
uint32_t start_sequence_len;
|
uint32_t start_sequence_len;
|
||||||
uint8_t* stop_sequence;
|
const uint8_t* stop_sequence;
|
||||||
uint32_t stop_sequence_len;
|
uint32_t stop_sequence_len;
|
||||||
uint16_t refresh_time;
|
uint16_t refresh_time;
|
||||||
uint16_t set_column_window_command;
|
uint16_t set_column_window_command;
|
||||||
|
@ -113,7 +113,8 @@ bool common_hal_displayio_fourwire_begin_transaction(mp_obj_t obj) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_displayio_fourwire_send(mp_obj_t obj, display_byte_type_t data_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length) {
|
void common_hal_displayio_fourwire_send(mp_obj_t obj, display_byte_type_t data_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length) {
|
||||||
displayio_fourwire_obj_t* self = MP_OBJ_TO_PTR(obj);
|
displayio_fourwire_obj_t* self = MP_OBJ_TO_PTR(obj);
|
||||||
common_hal_digitalio_digitalinout_set_value(&self->command, data_type == DISPLAY_DATA);
|
common_hal_digitalio_digitalinout_set_value(&self->command, data_type == DISPLAY_DATA);
|
||||||
if (chip_select == CHIP_SELECT_TOGGLE_EVERY_BYTE) {
|
if (chip_select == CHIP_SELECT_TOGGLE_EVERY_BYTE) {
|
||||||
|
@ -103,7 +103,8 @@ bool common_hal_displayio_i2cdisplay_begin_transaction(mp_obj_t obj) {
|
|||||||
return common_hal_busio_i2c_try_lock(self->bus);
|
return common_hal_busio_i2c_try_lock(self->bus);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_displayio_i2cdisplay_send(mp_obj_t obj, display_byte_type_t data_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length) {
|
void common_hal_displayio_i2cdisplay_send(mp_obj_t obj, display_byte_type_t data_type,
|
||||||
|
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length) {
|
||||||
displayio_i2cdisplay_obj_t* self = MP_OBJ_TO_PTR(obj);
|
displayio_i2cdisplay_obj_t* self = MP_OBJ_TO_PTR(obj);
|
||||||
if (data_type == DISPLAY_COMMAND) {
|
if (data_type == DISPLAY_COMMAND) {
|
||||||
uint8_t command_bytes[2 * data_length];
|
uint8_t command_bytes[2 * data_length];
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
#define MSC_FLASH_BLOCK_SIZE 512
|
#define MSC_FLASH_BLOCK_SIZE 512
|
||||||
|
|
||||||
static bool ejected[1] = {true};
|
static bool ejected[1] = {false};
|
||||||
|
|
||||||
void usb_msc_mount(void) {
|
void usb_msc_mount(void) {
|
||||||
// Reset the ejection tracking every time we're plugged into USB. This allows for us to battery
|
// Reset the ejection tracking every time we're plugged into USB. This allows for us to battery
|
||||||
|
Loading…
Reference in New Issue
Block a user