Merge branch 'main' into rp2040_countio
This commit is contained in:
commit
37ee18349f
@ -1 +1 @@
|
||||
Subproject commit 5e925cea7a55273e375a6129761cb29b4e750d4f
|
||||
Subproject commit c2c81ded118484f8925bf81e270b416739cd72d9
|
@ -1 +1 @@
|
||||
Subproject commit 045674745afa59028fbeed6dac5cb5a9c4a6033e
|
||||
Subproject commit 280297bdb7aec67adf347ec046943a48a71647df
|
71
locale/ID.po
71
locale/ID.po
@ -107,6 +107,7 @@ msgstr "%q harus >= 1"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q harus berupa tuple dengan panjang 2"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q di luar jangkauan"
|
||||
@ -337,6 +338,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Semua perangkat SPI sedang digunakan"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Semua perangkat UART sedang digunakan"
|
||||
|
||||
@ -460,6 +462,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Di bawah frame rate minimum"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "Bit clock dan word harus memiliki kesamaan pada clock unit"
|
||||
@ -501,6 +507,10 @@ msgstr "Brightness tidak bisa disesuaikan"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Buffer + offset terlalu kecil %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -962,6 +972,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Gagal untuk mendapatkan mutex, status: 0x%08lX"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Gagal untuk mengalokasikan buffer RX"
|
||||
|
||||
@ -1093,6 +1104,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "Panjang IV harus %d byte"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1109,6 +1124,14 @@ msgstr "Ukuran penyangga salah"
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1219,7 +1242,8 @@ msgstr "Argumen tidak valid"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Bit per nilai tidak valid"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Ukuran buffer tidak valid"
|
||||
|
||||
@ -1294,10 +1318,10 @@ msgstr "Pin untuk channel kanan tidak valid"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Pin-pin tidak valid"
|
||||
|
||||
@ -1346,7 +1370,8 @@ msgstr "Hitungan suara tidak valid"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "File wave tidak valid"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "Panjang kata/bit tidak valid"
|
||||
|
||||
@ -1473,6 +1498,7 @@ msgstr "Tidak ada DAC (Digital Analog Converter) di dalam chip"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "tidak ada channel DMA ditemukan"
|
||||
@ -1539,6 +1565,14 @@ msgstr "Tidak ada dukungan perangkat keras pada pin clk"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Tidak ada dukungan hardware untuk pin"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Tidak ada kunci yang ditentukan"
|
||||
@ -1627,13 +1661,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Parity ganjil tidak didukung"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Hanya 8 atau 16 bit mono dengan "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1683,6 +1714,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1847,7 +1882,7 @@ msgstr "Kesalahan DeInit RNG"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "Kesalahan Init RNG"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1884,7 +1919,7 @@ msgstr "Baca-saja"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "sistem file (filesystem) bersifat Read-only"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
#, fuzzy
|
||||
msgid "Read-only object"
|
||||
msgstr "sistem file (filesystem) bersifat Read-only"
|
||||
@ -2125,6 +2160,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Untuk keluar, silahkan reset board tanpa "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Terlalu banyak channel dalam sampel"
|
||||
|
||||
@ -2165,10 +2201,6 @@ msgstr "Kesalahan Init UART"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "Kesalahan Re-init UART"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "Kesalahan penulisan UART"
|
||||
@ -2195,6 +2227,7 @@ msgstr "Nilai UUID bukan str, int atau byte buffer"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Tidak dapat mengalokasikan buffer untuk signed conversion"
|
||||
@ -2505,7 +2538,7 @@ msgid "binary op %q not implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
@ -2734,6 +2767,10 @@ msgstr ""
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3734,6 +3771,7 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3811,6 +3849,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "nilai sampling keluar dari jangkauan"
|
||||
|
||||
@ -3882,7 +3921,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
|
@ -102,6 +102,7 @@ msgstr ""
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr ""
|
||||
@ -332,6 +333,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
@ -453,6 +455,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr ""
|
||||
@ -494,6 +500,10 @@ msgstr ""
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -943,6 +953,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -1074,6 +1085,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In-buffer elements must be <= 4 bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1088,6 +1103,14 @@ msgstr ""
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1198,7 +1221,8 @@ msgstr ""
|
||||
msgid "Invalid bits per value"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr ""
|
||||
|
||||
@ -1273,10 +1297,10 @@ msgstr ""
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr ""
|
||||
|
||||
@ -1325,7 +1349,8 @@ msgstr ""
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr ""
|
||||
|
||||
@ -1452,6 +1477,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr ""
|
||||
@ -1518,6 +1544,14 @@ msgstr ""
|
||||
msgid "No hardware support on pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
@ -1604,13 +1638,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1664,6 +1695,10 @@ msgstr ""
|
||||
msgid "Out of sockets"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out-buffer elements must be <= 4 bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitops/__init__.c
|
||||
#, c-format
|
||||
msgid "Output buffer must be at least %d bytes"
|
||||
@ -1827,7 +1862,7 @@ msgstr ""
|
||||
msgid "RNG Init Error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1864,7 +1899,7 @@ msgstr ""
|
||||
msgid "Read-only filesystem"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr ""
|
||||
|
||||
@ -2097,6 +2132,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr ""
|
||||
|
||||
@ -2136,10 +2172,6 @@ msgstr ""
|
||||
msgid "UART Re-init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr ""
|
||||
@ -2166,6 +2198,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr ""
|
||||
@ -2467,7 +2500,7 @@ msgid "binary op %q not implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
@ -2695,6 +2728,10 @@ msgstr ""
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3772,6 +3809,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr ""
|
||||
|
||||
@ -3843,7 +3881,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
|
71
locale/cs.po
71
locale/cs.po
@ -105,6 +105,7 @@ msgstr "%q musí být > = 1"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q musí být n-tice délky 2"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q je mimo rozsah"
|
||||
@ -335,6 +336,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
@ -456,6 +458,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr ""
|
||||
@ -497,6 +503,10 @@ msgstr ""
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -946,6 +956,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -1077,6 +1088,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1091,6 +1106,14 @@ msgstr ""
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1201,7 +1224,8 @@ msgstr ""
|
||||
msgid "Invalid bits per value"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr ""
|
||||
|
||||
@ -1276,10 +1300,10 @@ msgstr ""
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr ""
|
||||
|
||||
@ -1328,7 +1352,8 @@ msgstr ""
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr ""
|
||||
|
||||
@ -1455,6 +1480,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr ""
|
||||
@ -1521,6 +1547,14 @@ msgstr ""
|
||||
msgid "No hardware support on pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
@ -1607,13 +1641,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1659,6 +1690,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1818,7 +1853,7 @@ msgstr ""
|
||||
msgid "RNG Init Error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1855,7 +1890,7 @@ msgstr ""
|
||||
msgid "Read-only filesystem"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr ""
|
||||
|
||||
@ -2088,6 +2123,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr ""
|
||||
|
||||
@ -2127,10 +2163,6 @@ msgstr ""
|
||||
msgid "UART Re-init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr ""
|
||||
@ -2157,6 +2189,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr ""
|
||||
@ -2458,7 +2491,7 @@ msgid "binary op %q not implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
@ -2686,6 +2719,10 @@ msgstr ""
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3685,6 +3722,7 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3762,6 +3800,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr ""
|
||||
|
||||
@ -3833,7 +3872,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
|
132
locale/de_DE.po
132
locale/de_DE.po
@ -6,14 +6,14 @@ msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2021-02-05 15:41+0000\n"
|
||||
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
|
||||
"PO-Revision-Date: 2021-02-25 00:24+0000\n"
|
||||
"Last-Translator: Daniel Glocker <mystboy666@gmail.com>\n"
|
||||
"Language: de_DE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.5-dev\n"
|
||||
"X-Generator: Weblate 4.5\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -28,6 +28,8 @@ msgid ""
|
||||
"\n"
|
||||
"Code stopped by auto-reload.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Code durch automatisches neuladen gestoppt\n"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -49,7 +51,7 @@ msgstr " Datei \"%q\", Zeile %d"
|
||||
|
||||
#: py/builtinhelp.c
|
||||
msgid " is of type %q\n"
|
||||
msgstr ""
|
||||
msgstr " ist vom Type %q\n"
|
||||
|
||||
#: main.c
|
||||
msgid " output:\n"
|
||||
@ -65,6 +67,8 @@ msgstr "%%c erwartet int oder char"
|
||||
msgid ""
|
||||
"%d address pins, %d rgb pins and %d tiles indicate a height of %d, not %d"
|
||||
msgstr ""
|
||||
"%d Address Pins, %d rgb Pins und %d Tiles indiziert eine Höhe von %d, nicht "
|
||||
"%d"
|
||||
|
||||
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
|
||||
msgid "%q failure: %d"
|
||||
@ -106,6 +110,7 @@ msgstr "%q muss >= 1 sein"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q muss ein Tupel der Länge 2 sein"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q außerhalb des Bereichs"
|
||||
@ -126,7 +131,7 @@ msgstr ""
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
msgstr ""
|
||||
msgstr "%s Error 0x%x"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "'%q' argument required"
|
||||
@ -146,7 +151,7 @@ msgstr "'%q' Objekt unterschützt keine Elementzuweisung"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "'%q' object does not support item deletion"
|
||||
msgstr "'%q' objekt unterstützt das "
|
||||
msgstr "'%q' Objekt unterstützt löschen von Elementen nicht"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "'%q' object has no attribute '%q'"
|
||||
@ -162,7 +167,7 @@ msgstr "'%q' Objekt ist kein callable"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "'%q' object is not iterable"
|
||||
msgstr ""
|
||||
msgstr "'%q' Objekt ist nicht iterierbar"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "'%q' object is not subscriptable"
|
||||
@ -292,7 +297,7 @@ msgstr "3-arg pow() wird nicht unterstützt"
|
||||
|
||||
#: shared-module/msgpack/__init__.c
|
||||
msgid "64 bit types"
|
||||
msgstr ""
|
||||
msgstr "64 bit Typen"
|
||||
|
||||
#: ports/atmel-samd/common-hal/countio/Counter.c
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -337,6 +342,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Alle SPI-Peripheriegeräte sind in Benutzung"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Alle UART-Peripheriegeräte sind in Benutzung"
|
||||
|
||||
@ -346,7 +352,7 @@ msgstr "Alle event Kanäle werden benutzt"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "All state machines in use"
|
||||
msgstr ""
|
||||
msgstr "Alle state machines in verwendung"
|
||||
|
||||
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
msgid "All sync event channels in use"
|
||||
@ -455,13 +461,17 @@ msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/canio/CAN.c
|
||||
msgid "Baudrate not supported by peripheral"
|
||||
msgstr ""
|
||||
msgstr "Baudrate wird von der Peripherie nicht unterstützt"
|
||||
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Unterhalb der minimalen Frame Rate"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "Bit clock und word select müssen eine clock unit teilen"
|
||||
@ -469,7 +479,7 @@ 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 ""
|
||||
msgstr "Bittiefe muss zwischen 1 und 6 liegen, nicht %d"
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "Bit depth must be multiple of 8."
|
||||
@ -503,6 +513,10 @@ msgstr "Die Helligkeit ist nicht einstellbar"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Buffer + Offset zu klein %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -566,7 +580,7 @@ msgstr "CBC-Blöcke müssen ein Vielfaches von 16 Bytes sein"
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "CRC or checksum was invalid"
|
||||
msgstr ""
|
||||
msgstr "CRC oder Checksumme ungültig"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
@ -574,7 +588,7 @@ msgstr "Rufe super().__init__() vor dem Zugriff auf ein natives Objekt auf."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on RTC IO from deep sleep."
|
||||
msgstr ""
|
||||
msgstr "Alarm der RTC IO kann nur im deep sleep ausgeführt werden."
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
|
||||
@ -620,7 +634,7 @@ msgstr "Kann nicht beite Kanäle auf dem gleichen Pin ausgeben"
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot pull on input-only pin."
|
||||
msgstr ""
|
||||
msgstr "Kann nicht 'pull' an einem 'input-only' pin."
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot read without MISO pin."
|
||||
@ -642,7 +656,7 @@ msgstr "Reset zum bootloader nicht möglich da bootloader nicht vorhanden."
|
||||
|
||||
#: ports/esp32s2/common-hal/socketpool/Socket.c
|
||||
msgid "Cannot set socket options"
|
||||
msgstr ""
|
||||
msgstr "Socket Optionen können nicht gesetzt werden"
|
||||
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
msgid "Cannot set value when direction is input."
|
||||
@ -672,7 +686,7 @@ msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
|
||||
msgid "Cannot wake on pin edge. Only level."
|
||||
msgstr ""
|
||||
msgstr "Kann nicht auf Flanke wecken, nur auf Level."
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot write without MOSI pin."
|
||||
@ -830,7 +844,7 @@ msgstr "Data 0 pin muss am Byte ausgerichtet sein"
|
||||
|
||||
#: ports/esp32s2/common-hal/displayio/ParallelBus.c
|
||||
msgid "Data 0 pin must be byte aligned."
|
||||
msgstr ""
|
||||
msgstr "Data 0 Pin muss Byte aligned sein."
|
||||
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
@ -888,7 +902,7 @@ msgstr "Fehler in regex"
|
||||
|
||||
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
|
||||
msgid "Error: Failure to bind"
|
||||
msgstr ""
|
||||
msgstr "Error: Bind Fehler"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
|
||||
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
|
||||
@ -926,7 +940,7 @@ msgstr "Erwartet eine Adresse"
|
||||
|
||||
#: shared-bindings/alarm/__init__.c
|
||||
msgid "Expected an alarm"
|
||||
msgstr ""
|
||||
msgstr "Alarm erwartet"
|
||||
|
||||
#: shared-module/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
@ -960,6 +974,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Mutex konnte nicht akquiriert werden. Status: 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Konnte keinen RX Buffer allozieren"
|
||||
|
||||
@ -1042,7 +1057,7 @@ msgstr "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde"
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
msgstr "Generischer Fehler"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
@ -1078,7 +1093,7 @@ msgstr "I2C-Init-Fehler"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
msgstr "I2C Peripherie in Verwendung"
|
||||
|
||||
#: shared-bindings/audiobusio/I2SOut.c
|
||||
msgid "I2SOut not available"
|
||||
@ -1093,6 +1108,10 @@ msgstr "IOs 0, 2 & 4 unterstützen keinen internen Pull up im sleep-Modus"
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "IV muss %d Bytes lang sein"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1107,6 +1126,14 @@ msgstr "Inkorrekte Puffergröße"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Init program size invalid"
|
||||
msgstr "Init Programm Größe ungültig"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
@ -1116,11 +1143,11 @@ msgstr "Initialisierung aufgrund von Speichermangel fehlgeschlagen"
|
||||
#: shared-bindings/bitops/__init__.c
|
||||
#, c-format
|
||||
msgid "Input buffer length (%d) must be a multiple of the strand count (%d)"
|
||||
msgstr ""
|
||||
msgstr "Input buffer länge (%d) muss ein vielfaches vom Strand Count (%d) sein"
|
||||
|
||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||
msgid "Input taking too long"
|
||||
msgstr ""
|
||||
msgstr "Input benötigt zu lange"
|
||||
|
||||
#: ports/esp32s2/common-hal/neopixel_write/__init__.c py/moduerrno.c
|
||||
msgid "Input/output error"
|
||||
@ -1129,7 +1156,7 @@ msgstr "Eingabe-/Ausgabefehler"
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#, c-format
|
||||
msgid "Instruction %d jumps on pin"
|
||||
msgstr ""
|
||||
msgstr "Instruktion %d springt auf Pin"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#, c-format
|
||||
@ -1208,7 +1235,7 @@ msgstr "Ungültige PWM Frequenz"
|
||||
|
||||
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
|
||||
msgid "Invalid Pin"
|
||||
msgstr ""
|
||||
msgstr "Ungültiger Pin"
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
|
||||
@ -1219,7 +1246,8 @@ msgstr "Ungültiges Argument"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Ungültige Bits pro Wert"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Ungültige Puffergröße"
|
||||
|
||||
@ -1294,10 +1322,10 @@ msgstr "Ungültiger Pin für rechten Kanal"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Ungültige Pins"
|
||||
|
||||
@ -1346,7 +1374,8 @@ msgstr "Ungültige Anzahl von Stimmen"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Ungültige wave Datei"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "Ungültige Wort- / Bitlänge"
|
||||
|
||||
@ -1475,6 +1504,7 @@ msgstr "Kein DAC im Chip vorhanden"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Kein DMA Kanal gefunden"
|
||||
@ -1541,6 +1571,14 @@ msgstr "Keine Hardwareunterstützung am clk Pin"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Keine Hardwareunterstützung an diesem Pin"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Es wurde kein Schlüssel angegeben"
|
||||
@ -1629,13 +1667,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Eine ungerade Parität wird nicht unterstützt"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Nur 8 oder 16 bit mono mit "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1685,6 +1720,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1847,7 +1886,7 @@ msgstr "RNG DeInit-Fehler"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "RNG Init Fehler"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1884,7 +1923,7 @@ msgstr "Nur lesen möglich, da Schreibgeschützt"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Schreibgeschützte Dateisystem"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "Schreibgeschützte Objekt"
|
||||
|
||||
@ -2129,6 +2168,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Zum beenden, resette bitte das board ohne "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Zu viele Kanäle im sample."
|
||||
|
||||
@ -2170,10 +2210,6 @@ msgstr "UART Init Fehler"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "UART Re-Init-Fehler"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "UART-Schreibfehler"
|
||||
@ -2200,6 +2236,7 @@ msgstr "Der UUID-Wert ist kein str-, int- oder Byte-Puffer"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Konnte keine Buffer für Vorzeichenumwandlung allozieren"
|
||||
@ -2356,7 +2393,7 @@ msgstr "WatchDogTimer.timeout muss größer als 0 sein"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Watchdog timer expired."
|
||||
msgstr "Watchdog timer abgelaufen "
|
||||
msgstr "Watchdog timer abgelaufen."
|
||||
|
||||
#: py/builtinhelp.c
|
||||
#, c-format
|
||||
@ -2516,8 +2553,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "Der binäre Operator %q ist nicht implementiert"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bits muss 7, 8 oder 9 sein"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2752,6 +2789,10 @@ msgstr "chr() arg ist nicht in range(256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr "Kreis kann nur in einem Elternteil registriert werden"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3767,6 +3808,7 @@ msgstr "pow () mit 3 Argumenten erfordert Integer"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3846,6 +3888,7 @@ msgstr ""
|
||||
"oder 'B' sein"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "Abtastrate außerhalb der Reichweite"
|
||||
|
||||
@ -3917,7 +3960,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr "Quell-Palette zu groß"
|
||||
|
||||
@ -4284,6 +4327,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bits muss 7, 8 oder 9 sein"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA oder SCL brauchen pull up"
|
||||
|
||||
|
71
locale/el.po
71
locale/el.po
@ -102,6 +102,7 @@ msgstr ""
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr ""
|
||||
@ -332,6 +333,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
@ -453,6 +455,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr ""
|
||||
@ -494,6 +500,10 @@ msgstr ""
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -943,6 +953,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -1074,6 +1085,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1088,6 +1103,14 @@ msgstr ""
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1198,7 +1221,8 @@ msgstr ""
|
||||
msgid "Invalid bits per value"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr ""
|
||||
|
||||
@ -1273,10 +1297,10 @@ msgstr ""
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr ""
|
||||
|
||||
@ -1325,7 +1349,8 @@ msgstr ""
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr ""
|
||||
|
||||
@ -1452,6 +1477,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr ""
|
||||
@ -1518,6 +1544,14 @@ msgstr ""
|
||||
msgid "No hardware support on pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
@ -1604,13 +1638,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1656,6 +1687,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1815,7 +1850,7 @@ msgstr ""
|
||||
msgid "RNG Init Error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1852,7 +1887,7 @@ msgstr ""
|
||||
msgid "Read-only filesystem"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr ""
|
||||
|
||||
@ -2085,6 +2120,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr ""
|
||||
|
||||
@ -2124,10 +2160,6 @@ msgstr ""
|
||||
msgid "UART Re-init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr ""
|
||||
@ -2154,6 +2186,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr ""
|
||||
@ -2455,7 +2488,7 @@ msgid "binary op %q not implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
@ -2683,6 +2716,10 @@ msgstr ""
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3682,6 +3719,7 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3759,6 +3797,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr ""
|
||||
|
||||
@ -3830,7 +3869,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
|
98
locale/es.po
98
locale/es.po
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2021-02-21 22:27+0000\n"
|
||||
"PO-Revision-Date: 2021-03-02 02:24+0000\n"
|
||||
"Last-Translator: Jose David M <jquintana202020@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
@ -113,6 +113,7 @@ msgstr "%q debe ser >= 1"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q debe ser una tupla de longitud 2"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q fuera de rango"
|
||||
@ -343,6 +344,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Todos los periféricos SPI están siendo usados"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Todos los periféricos UART están siendo usados"
|
||||
|
||||
@ -470,6 +472,10 @@ msgstr "El periférico no maneja el Baudrate"
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Por debajo de la tasa mínima de refrescamiento"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "Le reloj de bit y de selector de palabra deben ser pines secuenciales"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "Bit clock y word select deben compartir una unidad de reloj"
|
||||
@ -511,6 +517,11 @@ msgstr "El brillo no se puede ajustar"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Búfer + compensado muy pequeños %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
"Los elementos del búfer deben de ser de una longitud de 4 bytes o menos"
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -968,6 +979,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "No se puede adquirir el mutex, error 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Ha fallado la asignación del buffer RX"
|
||||
|
||||
@ -1100,6 +1112,12 @@ msgstr "IOs 0, 2 y 4 no soportan pullup interno durante sleep"
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "IV debe tener %d bytes de longitud"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
"Los elementos del búfer de entrada deben ser de una longitud de 4 bytes o "
|
||||
"menos"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1116,6 +1134,18 @@ msgstr "Tamaño incorrecto del buffer"
|
||||
msgid "Init program size invalid"
|
||||
msgstr "Tamaño del programa Init invalido"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
"La dirección configurada inicial del pin esta en conflicto con la dirección "
|
||||
"de salida inicial del pin"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
"El estado inicial del pin de configuración esta en conflicto con el estado "
|
||||
"inicial de salida del pin"
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr "Inicializacion fallida por falta de memoria"
|
||||
@ -1228,7 +1258,8 @@ msgstr "Argumento inválido"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Inválido bits por valor"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Tamaño de buffer inválido"
|
||||
|
||||
@ -1303,10 +1334,10 @@ msgstr "Pin inválido para canal derecho"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "pines inválidos"
|
||||
|
||||
@ -1355,7 +1386,8 @@ msgstr "Cuenta de voces inválida"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Archivo wave inválido"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "Tamaño no válido de palabra/bit"
|
||||
|
||||
@ -1486,6 +1518,7 @@ msgstr "El chip no tiene DAC"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "No se encontró el canal DMA"
|
||||
@ -1552,6 +1585,14 @@ msgstr "Sin soporte de hardware en el pin clk"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Sin soporte de hardware en pin"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr "No hay \"in\" en el programa"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr "No hay \"in\" o \"out\" en el programa"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "No se especificó ninguna llave"
|
||||
@ -1640,13 +1681,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Paridad impar no soportada"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Solo mono de 8 ó 16 bit con "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr "Solamente IN/OUT hasta 8 esta soportado"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr "Solo hay capacidad para direcciones IPv4"
|
||||
@ -1696,6 +1734,12 @@ msgstr "Operación no característica no soportada"
|
||||
msgid "Operation timed out"
|
||||
msgstr "Tiempo de espera agotado"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
"Los elementos del búfer de salida deben ser de una longitud de 4 bytes o "
|
||||
"menos"
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr "Memoria agotada"
|
||||
@ -1867,7 +1911,7 @@ msgstr "Error de desinicialización de RNG"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "Error de inicialización de RNG"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr "RS485 no esta soportado todavía en este dispositivo"
|
||||
|
||||
@ -1904,7 +1948,7 @@ msgstr "Solo-lectura"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Sistema de archivos de solo-Lectura"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "Objeto de solo-lectura"
|
||||
|
||||
@ -2150,6 +2194,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Para salir, por favor reinicia la tarjeta sin "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Demasiados canales en sample."
|
||||
|
||||
@ -2190,10 +2235,6 @@ msgstr "Error de inicialización de UART"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "Error de reinicialización de UART"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr "UART no esta soportado todavia"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "Error de escritura UART"
|
||||
@ -2220,6 +2261,7 @@ msgstr "UUID valor no es un str, int o byte buffer"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "No se pudieron asignar buffers para la conversión con signo"
|
||||
@ -2532,8 +2574,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "operacion binaria %q no implementada"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bits deben ser 7, 8 ó 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr "los bits deben estar en el rango de 5 a 9"
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2765,6 +2807,10 @@ msgstr "El argumento de chr() no esta en el rango(256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr "circulo solo puede ser registrado con un pariente"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr "código fuera del rango 0~127"
|
||||
@ -3773,6 +3819,7 @@ msgstr "pow() con 3 argumentos requiere enteros"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr "presionando botón de arranque al inicio.\n"
|
||||
|
||||
@ -3852,6 +3899,7 @@ msgstr ""
|
||||
"o'B'"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "frecuencia de muestreo fuera de rango"
|
||||
|
||||
@ -3923,7 +3971,7 @@ msgstr "sos[:, 3] deberían ser todos unos"
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr "sosfilt requiere argumentos iterables"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr "paleta fuente muy larga"
|
||||
|
||||
@ -4286,6 +4334,20 @@ msgstr "zi debe ser de tipo flotante"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi debe ser una forma (n_section,2)"
|
||||
|
||||
#~ msgid "Initial set pin direcion conflicts with initial out pin direction"
|
||||
#~ msgstr ""
|
||||
#~ "La dirección inicial del pin de configuración esta en conflicto con la "
|
||||
#~ "dirección de salida inicial del pin"
|
||||
|
||||
#~ msgid "UART not yet supported"
|
||||
#~ msgstr "UART no esta soportado todavia"
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bits deben ser 7, 8 ó 9"
|
||||
|
||||
#~ msgid "Only IN/OUT of up to 8 supported"
|
||||
#~ msgstr "Solamente IN/OUT hasta 8 esta soportado"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA o SCL necesitan una pull up"
|
||||
|
||||
|
@ -102,6 +102,7 @@ msgstr "aarehas na haba dapat ang buffer slices"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr ""
|
||||
@ -334,6 +335,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Lahat ng SPI peripherals ay ginagamit"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
#, fuzzy
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Lahat ng I2C peripherals ginagamit"
|
||||
@ -458,6 +460,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "Ang bit clock at word select dapat makibahagi sa isang clock unit"
|
||||
@ -499,6 +505,10 @@ msgstr ""
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -956,6 +966,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Nabigo sa pag kuha ng mutex, status: 0x%08lX"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Nabigong ilaan ang RX buffer"
|
||||
|
||||
@ -1087,6 +1098,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1103,6 +1118,14 @@ msgstr ""
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1213,7 +1236,8 @@ msgstr "Maling argumento"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Mali ang buffer size"
|
||||
|
||||
@ -1288,10 +1312,10 @@ msgstr "Mali ang pin para sa kanang channel"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Mali ang pins"
|
||||
|
||||
@ -1340,7 +1364,8 @@ msgstr "Maling bilang ng voice"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "May hindi tama sa wave file"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr ""
|
||||
|
||||
@ -1467,6 +1492,7 @@ msgstr "Walang DAC sa chip"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Walang DMA channel na mahanap"
|
||||
@ -1533,6 +1559,14 @@ msgstr ""
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Walang support sa hardware ang pin"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
@ -1622,13 +1656,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Odd na parity ay hindi supportado"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Tanging 8 o 16 na bit mono na may "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1674,6 +1705,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1834,7 +1869,7 @@ msgstr ""
|
||||
msgid "RNG Init Error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1871,7 +1906,7 @@ msgstr "Basahin-lamang"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Basahin-lamang mode"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
#, fuzzy
|
||||
msgid "Read-only object"
|
||||
msgstr "Basahin-lamang"
|
||||
@ -2105,6 +2140,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Para lumabas, paki-reset ang board na wala ang "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Sobra ang channels sa sample."
|
||||
|
||||
@ -2144,10 +2180,6 @@ msgstr ""
|
||||
msgid "UART Re-init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr ""
|
||||
@ -2174,6 +2206,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Hindi ma-allocate ang buffers para sa naka-sign na conversion"
|
||||
@ -2485,8 +2518,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "binary op %q hindi implemented"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bits ay dapat 7, 8 o 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2720,6 +2753,10 @@ msgstr "chr() arg wala sa sakop ng range(256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3731,6 +3768,7 @@ msgstr "pow() na may 3 argumento kailangan ng integers"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3810,6 +3848,7 @@ msgstr ""
|
||||
"'H', 'b' o'B'"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "pagpili ng rate wala sa sakop"
|
||||
|
||||
@ -3881,7 +3920,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
@ -4247,6 +4286,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bits ay dapat 7, 8 o 9"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "Kailangan ng pull up resistors ang SDA o SCL"
|
||||
|
||||
|
85
locale/fr.po
85
locale/fr.po
@ -113,6 +113,7 @@ msgstr "%q doit être >= 1"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q doit être un tuple de longueur 2"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q est hors de porté"
|
||||
@ -343,6 +344,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Tous les périphériques SPI sont utilisés"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Tous les périphériques UART sont utilisés"
|
||||
|
||||
@ -470,6 +472,10 @@ msgstr "Baudrate non supporté par le périphérique"
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Au-dessous de la fréquence d'images minimale"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "'bit clock' et 'word select' doivent partager une horloge"
|
||||
@ -511,6 +517,10 @@ msgstr "Luminosité non-ajustable"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Tampon + décalage trop petit %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -976,6 +986,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Echec de l'obtention de mutex, err 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Echec de l'allocation du tampon RX"
|
||||
|
||||
@ -1109,6 +1120,10 @@ msgstr "IOs 0, 2 & 4 ne supportent pas l'éleveuse interne en mode someil"
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "IV doit être de longueur de %d octets"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1125,6 +1140,14 @@ msgstr "Taille de tampon incorrecte"
|
||||
msgid "Init program size invalid"
|
||||
msgstr "Taille du programme d'initialisation non valide"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr "Échec d'initialisation par manque de mémoire"
|
||||
@ -1241,7 +1264,8 @@ msgstr "Paramètre invalide"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Bits par valeur invalides"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Longueur de tampon invalide"
|
||||
|
||||
@ -1316,10 +1340,10 @@ msgstr "Broche invalide pour le canal droit"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Broches invalides"
|
||||
|
||||
@ -1368,7 +1392,8 @@ msgstr "Nombre de voix invalide"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Fichier WAVE invalide"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "Longueur de mot / bit invalide"
|
||||
|
||||
@ -1441,7 +1466,8 @@ msgstr "first_in_pin manquant. Instruction %d lit une/des broche(s)"
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#, c-format
|
||||
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
|
||||
msgstr "first_in_pin manquant. Instruction %d est déplacée par la/les broche(s)"
|
||||
msgstr ""
|
||||
"first_in_pin manquant. Instruction %d est déplacée par la/les broche(s)"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#, c-format
|
||||
@ -1496,6 +1522,7 @@ msgstr "Pas de DAC sur la puce"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Aucun canal DMA trouvé"
|
||||
@ -1562,6 +1589,14 @@ msgstr "Pas de support matériel sur la broche clk"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Pas de support matériel pour cette broche"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Aucune clé n'a été spécifiée"
|
||||
@ -1650,13 +1685,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Parité impaire non supportée"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Uniquement 8 ou 16 bit mono avec "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr "Seulement des IN/OUT jusqu'à 8 est supporté"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr "Seulement les adresses IPv4 sont supportées"
|
||||
@ -1706,6 +1738,10 @@ msgstr "Opération ou fonction non supportée"
|
||||
msgid "Operation timed out"
|
||||
msgstr "Timeout de l'opération"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr "Hors de mémoire"
|
||||
@ -1879,7 +1915,7 @@ msgstr "Erreur de désinitiation du RNG (RNG DeInit)"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "Erreur d'initialisation du RNG (RNG Init)"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr "RS485 n'est pas encore supporté sur cet appareil"
|
||||
|
||||
@ -1916,7 +1952,7 @@ msgstr "Lecture seule"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Système de fichier en lecture seule"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "Objet en lecture seule"
|
||||
|
||||
@ -2160,6 +2196,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Pour quitter, SVP redémarrez la carte sans "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Trop de canaux dans l'échantillon."
|
||||
|
||||
@ -2200,10 +2237,6 @@ msgstr "Erreur d'initialisation UART"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "Erreur de réinitialisation UART"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr "UART n'est pas encore supporté"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "Erreur d'écriture UART"
|
||||
@ -2233,6 +2266,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Impossible d'allouer des tampons pour une conversion signée"
|
||||
@ -2547,8 +2581,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "opération binaire '%q' non implémentée"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bits doivent être 7, 8 ou 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2784,6 +2818,10 @@ msgstr "paramètre de chr() hors les bornes de range(256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr "le cercle ne peut être enregistré que dans un seul parent"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr "code hors bornes 0~127"
|
||||
@ -3799,6 +3837,7 @@ msgstr "pow() avec 3 arguments nécessite des entiers"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr "bouton boot appuyé lors du démarrage.\n"
|
||||
|
||||
@ -3878,6 +3917,7 @@ msgstr ""
|
||||
"'h','H', 'b' ou 'B'"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "taux d'échantillonage hors bornes"
|
||||
|
||||
@ -3949,7 +3989,7 @@ msgstr "sos[:, 3] doivent tous être à un"
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr "sosfilt nécessite des argument itératifs"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr "la palette source est trop grande"
|
||||
|
||||
@ -4312,6 +4352,15 @@ msgstr "zi doit être de type float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi doit être de forme (n_section, 2)"
|
||||
|
||||
#~ msgid "UART not yet supported"
|
||||
#~ msgstr "UART n'est pas encore supporté"
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bits doivent être 7, 8 ou 9"
|
||||
|
||||
#~ msgid "Only IN/OUT of up to 8 supported"
|
||||
#~ msgstr "Seulement des IN/OUT jusqu'à 8 est supporté"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
|
||||
|
||||
|
71
locale/hi.po
71
locale/hi.po
@ -102,6 +102,7 @@ msgstr ""
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr ""
|
||||
@ -332,6 +333,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
@ -453,6 +455,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr ""
|
||||
@ -494,6 +500,10 @@ msgstr ""
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -943,6 +953,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -1074,6 +1085,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1088,6 +1103,14 @@ msgstr ""
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1198,7 +1221,8 @@ msgstr ""
|
||||
msgid "Invalid bits per value"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr ""
|
||||
|
||||
@ -1273,10 +1297,10 @@ msgstr ""
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr ""
|
||||
|
||||
@ -1325,7 +1349,8 @@ msgstr ""
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr ""
|
||||
|
||||
@ -1452,6 +1477,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr ""
|
||||
@ -1518,6 +1544,14 @@ msgstr ""
|
||||
msgid "No hardware support on pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
@ -1604,13 +1638,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1656,6 +1687,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1815,7 +1850,7 @@ msgstr ""
|
||||
msgid "RNG Init Error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1852,7 +1887,7 @@ msgstr ""
|
||||
msgid "Read-only filesystem"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr ""
|
||||
|
||||
@ -2085,6 +2120,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr ""
|
||||
|
||||
@ -2124,10 +2160,6 @@ msgstr ""
|
||||
msgid "UART Re-init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr ""
|
||||
@ -2154,6 +2186,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr ""
|
||||
@ -2455,7 +2488,7 @@ msgid "binary op %q not implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
@ -2683,6 +2716,10 @@ msgstr ""
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3682,6 +3719,7 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3759,6 +3797,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr ""
|
||||
|
||||
@ -3830,7 +3869,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
|
@ -112,6 +112,7 @@ msgstr "slice del buffer devono essere della stessa lunghezza"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q deve essere una tupla di lunghezza 2"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q oltre il limite"
|
||||
@ -343,6 +344,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Tutte le periferiche SPI sono in uso"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
#, fuzzy
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Tutte le periferiche I2C sono in uso"
|
||||
@ -467,6 +469,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Al di sotto del frame rate minimo"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr ""
|
||||
@ -509,6 +515,10 @@ msgstr "Luminosità non è regolabile"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Buffer + offset troppo piccolo %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -965,6 +975,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Impossibile allocare buffer RX"
|
||||
|
||||
@ -1096,6 +1107,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1112,6 +1127,14 @@ msgstr ""
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1222,7 +1245,8 @@ msgstr "Argomento non valido"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "bits per valore invalido"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#, fuzzy
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "lunghezza del buffer non valida"
|
||||
@ -1299,10 +1323,10 @@ msgstr "Pin non valido per il canale destro"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Pin non validi"
|
||||
|
||||
@ -1352,7 +1376,8 @@ msgstr "Tipo di servizio non valido"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "File wave non valido"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr ""
|
||||
|
||||
@ -1480,6 +1505,7 @@ msgstr "Nessun DAC sul chip"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Nessun canale DMA trovato"
|
||||
@ -1546,6 +1572,14 @@ msgstr ""
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Nessun supporto hardware sul pin"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
@ -1636,13 +1670,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "operazione I2C non supportata"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1688,6 +1719,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1853,7 +1888,7 @@ msgstr ""
|
||||
msgid "RNG Init Error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1890,7 +1925,7 @@ msgstr "Sola lettura"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Filesystem in sola lettura"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
#, fuzzy
|
||||
msgid "Read-only object"
|
||||
msgstr "Sola lettura"
|
||||
@ -2126,6 +2161,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Per uscire resettare la scheda senza "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr ""
|
||||
|
||||
@ -2165,10 +2201,6 @@ msgstr ""
|
||||
msgid "UART Re-init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr ""
|
||||
@ -2195,6 +2227,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Ipossibilitato ad allocare buffer per la conversione con segno"
|
||||
@ -2498,8 +2531,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "operazione binaria %q non implementata"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "i bit devono essere 7, 8 o 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
#, fuzzy
|
||||
@ -2730,6 +2763,10 @@ msgstr "argomento di chr() non è in range(256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3748,6 +3785,7 @@ msgstr "pow() con 3 argomenti richiede interi"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3827,6 +3865,7 @@ msgstr ""
|
||||
"'H', 'b' o 'B'"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "frequenza di campionamento fuori intervallo"
|
||||
|
||||
@ -3898,7 +3937,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
@ -4264,6 +4303,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "i bit devono essere 7, 8 o 9"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA o SCL necessitano un pull-up"
|
||||
|
||||
|
76
locale/ja.po
76
locale/ja.po
@ -107,6 +107,7 @@ msgstr "%qは1以上でなければなりません"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%qは長さ2のタプルでなければなりません"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q が範囲外"
|
||||
@ -337,6 +338,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "全てのSPI周辺機器が使用中"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "全てのUART周辺機器が使用中"
|
||||
|
||||
@ -460,6 +462,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "最低のフレームレート未満"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "bit clockとword selectはクロックユニットを共有しなければなりません"
|
||||
@ -501,6 +507,10 @@ msgstr "Brightnessは調整可能ではありません"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "buffer + offsetが小さすぎます %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -954,6 +964,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "ミューテックスの取得に失敗。エラー 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "RXバッファの確保に失敗"
|
||||
|
||||
@ -1085,6 +1096,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "IVは%dバイト長でなければなりません"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1101,6 +1116,14 @@ msgstr "バッファサイズが正しくありません"
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1211,7 +1234,8 @@ msgstr "不正な引数"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "不正なbits per value"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "不正なバッファサイズ"
|
||||
|
||||
@ -1286,10 +1310,10 @@ msgstr "右チャネルのピンが不正"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "ピンが不正"
|
||||
|
||||
@ -1338,7 +1362,8 @@ msgstr "不正なボイス数"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "不正なwaveファイル"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "不正なワード/ビット長"
|
||||
|
||||
@ -1465,6 +1490,7 @@ msgstr "チップにDACがありません"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "DMAチャネルが見つかりません"
|
||||
@ -1531,6 +1557,14 @@ msgstr "clkピンにハードウェア対応がありません"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "ピンにハードウェア対応がありません"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "キーが指定されていません"
|
||||
@ -1619,13 +1653,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "奇数パリティには対応していません"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "8または16ビットの "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1671,6 +1702,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1831,7 +1866,7 @@ msgstr "RNG解体エラー"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "乱数生成器の初期化エラー"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1868,7 +1903,7 @@ msgstr "読み込み専用"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "読み込み専用のファイルシステム"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "読み込み専用のオブジェクト"
|
||||
|
||||
@ -2107,6 +2142,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "サンプルのチャンネル数が多すぎます"
|
||||
|
||||
@ -2146,10 +2182,6 @@ msgstr "UARTの初期化エラー"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "UARTの再初期化エラー"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "UART書き込みエラー"
|
||||
@ -2177,6 +2209,7 @@ msgstr "UUIDの値がstr, int, bufferのいずれでもありません"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr ""
|
||||
@ -2478,8 +2511,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bitsは7, 8, 9のいずれかでなければなりません"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2706,6 +2739,10 @@ msgstr ""
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3712,6 +3749,7 @@ msgstr "pow()の第3引数には整数が必要"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3790,6 +3828,7 @@ msgstr ""
|
||||
"sample_source バッファには bytearray または 'h','H','b','B'型のarrayが必要"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "サンプリングレートが範囲外"
|
||||
|
||||
@ -3861,7 +3900,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
@ -4223,6 +4262,9 @@ msgstr "ziはfloat値でなければなりません"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bitsは7, 8, 9のいずれかでなければなりません"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDAとSCLにプルアップが必要"
|
||||
|
||||
|
76
locale/ko.po
76
locale/ko.po
@ -103,6 +103,7 @@ msgstr "%q 는 >=1이어야합니다"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr ""
|
||||
@ -333,6 +334,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "사용중인 모든 SPI주변 기기"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "사용중인 모든 UART주변 기기"
|
||||
|
||||
@ -456,6 +458,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr ""
|
||||
@ -497,6 +503,10 @@ msgstr "밝기를 조절할 수 없습니다"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -946,6 +956,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -1077,6 +1088,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1091,6 +1106,14 @@ msgstr ""
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr ""
|
||||
@ -1201,7 +1224,8 @@ msgstr ""
|
||||
msgid "Invalid bits per value"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr ""
|
||||
|
||||
@ -1276,10 +1300,10 @@ msgstr "오른쪽 채널 핀이 잘못되었습니다"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "핀이 유효하지 않습니다"
|
||||
|
||||
@ -1328,7 +1352,8 @@ msgstr ""
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr ""
|
||||
|
||||
@ -1455,6 +1480,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr ""
|
||||
@ -1521,6 +1547,14 @@ msgstr ""
|
||||
msgid "No hardware support on pin"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
@ -1607,13 +1641,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1659,6 +1690,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1818,7 +1853,7 @@ msgstr ""
|
||||
msgid "RNG Init Error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1855,7 +1890,7 @@ msgstr ""
|
||||
msgid "Read-only filesystem"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr ""
|
||||
|
||||
@ -2088,6 +2123,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr ""
|
||||
|
||||
@ -2127,10 +2163,6 @@ msgstr ""
|
||||
msgid "UART Re-init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr ""
|
||||
@ -2158,6 +2190,7 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr ""
|
||||
@ -2459,8 +2492,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "비트(bits)는 7, 8 또는 9 여야합니다"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2687,6 +2720,10 @@ msgstr ""
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3686,6 +3723,7 @@ msgstr ""
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3763,6 +3801,7 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr ""
|
||||
|
||||
@ -3834,7 +3873,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr ""
|
||||
|
||||
@ -4196,6 +4235,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "비트(bits)는 7, 8 또는 9 여야합니다"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Code done running. Waiting for reload.\n"
|
||||
|
76
locale/nl.po
76
locale/nl.po
@ -105,6 +105,7 @@ msgstr "%q moet >= 1 zijn"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q moet een tuple van lengte 2 zijn"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q buiten bereik"
|
||||
@ -335,6 +336,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Alle SPI peripherals zijn in gebruik"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Alle UART peripherals zijn in gebruik"
|
||||
|
||||
@ -458,6 +460,10 @@ msgstr "Baudrate wordt niet ondersteund door randapparatuur"
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Onder de minimum frame rate"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "Bit clock en word select moeten een clock eenheid delen"
|
||||
@ -499,6 +505,10 @@ msgstr "Helderheid is niet aanpasbaar"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Buffer + offset te klein %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -954,6 +964,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Fout tijdens verkrijgen mutex, err 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "RX buffer alloceren mislukt"
|
||||
|
||||
@ -1086,6 +1097,10 @@ msgstr "IO's 0, 2 en 4 ondersteunen geen interne pullup in slaapstand"
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "IV %d bytes lang zijn"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1102,6 +1117,14 @@ msgstr "Incorrecte buffer grootte"
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr "De initialisatie is mislukt vanwege een gebrek aan geheugen"
|
||||
@ -1212,7 +1235,8 @@ msgstr "Ongeldig argument"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Ongeldige bits per waarde"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Ongeldige buffer grootte"
|
||||
|
||||
@ -1287,10 +1311,10 @@ msgstr "Ongeldige pin voor rechter kanaal"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Ongeldige pinnen"
|
||||
|
||||
@ -1339,7 +1363,8 @@ msgstr "Ongeldig stem aantal"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Ongeldig wave bestand"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "Ongeldig woord/bit lengte"
|
||||
|
||||
@ -1466,6 +1491,7 @@ msgstr "Geen DAC op de chip"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Geen DMA kanaal gevonden"
|
||||
@ -1532,6 +1558,14 @@ msgstr "Geen hardware ondersteuning beschikbaar op clk pin"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Geen hardware ondersteuning op pin"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Een sleutel was niet gespecificeerd"
|
||||
@ -1620,13 +1654,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Oneven pariteit is niet ondersteund"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Alleen 8 of 16 bit mono met "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr "Alleen IPv4 adressen worden ondersteund"
|
||||
@ -1676,6 +1707,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr ""
|
||||
@ -1847,7 +1882,7 @@ msgstr "RNG DeInit Fout"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "RNG Init Fout"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1884,7 +1919,7 @@ msgstr "Alleen-lezen"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Alleen-lezen bestandssysteem"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "Alleen-lezen object"
|
||||
|
||||
@ -2127,6 +2162,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Om te beëindigen, reset het bord zonder "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Teveel kanalen in sample."
|
||||
|
||||
@ -2166,10 +2202,6 @@ msgstr "UART Init Fout"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "UART Re-init Fout"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "UART schrijf fout"
|
||||
@ -2196,6 +2228,7 @@ msgstr "UUID waarde is geen str, int, of byte buffer"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Niet in staat buffers voor gesigneerde conversie te alloceren"
|
||||
@ -2508,8 +2541,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "binaire op %q niet geïmplementeerd"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bits moet 7, 8, of 9 zijn"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2738,6 +2771,10 @@ msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
"cirkel kan slechts bij één object van een hoger niveau worden geregistreerd"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3744,6 +3781,7 @@ msgstr "pow() met 3 argumenten vereist integers"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr "druk bootknop in bij opstarten.\n"
|
||||
|
||||
@ -3823,6 +3861,7 @@ msgstr ""
|
||||
"'B' zijn"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "bemonsteringssnelheid buiten bereik"
|
||||
|
||||
@ -3894,7 +3933,7 @@ msgstr "sos[:, 3] moeten allemaal 1 zijn"
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr "sosfilt vereist itereerbare argumenten"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr "bronpalet te groot"
|
||||
|
||||
@ -4256,6 +4295,9 @@ msgstr "zi moet van type float zijn"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi moet vorm (n_section, 2) hebben"
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bits moet 7, 8, of 9 zijn"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA of SCL hebben een pullup nodig"
|
||||
|
||||
|
76
locale/pl.po
76
locale/pl.po
@ -107,6 +107,7 @@ msgstr "%q musi być >= 1"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q musi być krotką o długości 2"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q poza zakresem"
|
||||
@ -337,6 +338,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Wszystkie peryferia SPI w użyciu"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Wszystkie peryferia UART w użyciu"
|
||||
|
||||
@ -460,6 +462,10 @@ msgstr ""
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "Zegar bitowy i wybór słowa muszą współdzielić jednostkę zegara"
|
||||
@ -501,6 +507,10 @@ msgstr "Jasność nie jest regulowana"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Bufor + przesunięcie za małe %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -954,6 +964,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Nie udało się uzyskać blokady, błąd 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Nie udała się alokacja bufora RX"
|
||||
|
||||
@ -1085,6 +1096,10 @@ msgstr ""
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "IV musi mieć długość %d bajtów"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1101,6 +1116,14 @@ msgstr "Niewłaściwa wielkość bufora"
|
||||
msgid "Init program size invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr "Inicjalizacja nie powiodła się z powodu braku pamięci"
|
||||
@ -1211,7 +1234,8 @@ msgstr "Zły argument"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Zła liczba bitów wartości"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Zła wielkość bufora"
|
||||
|
||||
@ -1286,10 +1310,10 @@ msgstr "Zła nóżka dla prawego kanału"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Złe nóżki"
|
||||
|
||||
@ -1338,7 +1362,8 @@ msgstr "Zła liczba głosów"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Zły plik wave"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "Niepoprawna długość słowa/bitu"
|
||||
|
||||
@ -1466,6 +1491,7 @@ msgstr "Brak DAC"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Nie znaleziono kanału DMA"
|
||||
@ -1532,6 +1558,14 @@ msgstr ""
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Brak sprzętowej obsługi na nóżce"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Nie określono klucza"
|
||||
@ -1618,13 +1652,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Nieparzysta parzystość nie jest wspierana"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Tylko 8 lub 16 bitów mono z "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr ""
|
||||
@ -1670,6 +1701,10 @@ msgstr ""
|
||||
msgid "Operation timed out"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr ""
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr "Brak pamięci"
|
||||
@ -1829,7 +1864,7 @@ msgstr ""
|
||||
msgid "RNG Init Error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr ""
|
||||
|
||||
@ -1866,7 +1901,7 @@ msgstr "Tylko do odczytu"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "System plików tylko do odczytu"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "Obiekt tylko do odczytu"
|
||||
|
||||
@ -2099,6 +2134,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "By wyjść, proszę zresetować płytkę bez "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Zbyt wiele kanałów."
|
||||
|
||||
@ -2138,10 +2174,6 @@ msgstr ""
|
||||
msgid "UART Re-init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr ""
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "Błąd zapisu UART"
|
||||
@ -2168,6 +2200,7 @@ msgstr "UUID nie jest typu str, int lub bytes"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Nie udała się alokacja buforów do konwersji ze znakiem"
|
||||
@ -2475,8 +2508,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "brak dwu-argumentowego operatora %q"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bits musi być 7, 8 lub 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2703,6 +2736,10 @@ msgstr "argument chr() poza zakresem range(256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr ""
|
||||
@ -3704,6 +3741,7 @@ msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr ""
|
||||
|
||||
@ -3782,6 +3820,7 @@ msgstr ""
|
||||
"bufor sample_source musi być bytearray lub tablicą typu 'h', 'H', 'b' lub 'B'"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "częstotliwość próbkowania poza zakresem"
|
||||
|
||||
@ -3853,7 +3892,7 @@ msgstr ""
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr "źródłowa paleta jest zbyt duża"
|
||||
|
||||
@ -4215,6 +4254,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bits musi być 7, 8 lub 9"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA lub SCL wymagają podciągnięcia"
|
||||
|
||||
|
@ -6,7 +6,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2021-02-21 22:27+0000\n"
|
||||
"PO-Revision-Date: 2021-03-01 15:19+0000\n"
|
||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: pt_BR\n"
|
||||
@ -111,6 +111,7 @@ msgstr "%q deve ser >= 1"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q deve ser uma tupla de comprimento 2"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q fora do alcance"
|
||||
@ -345,6 +346,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Todos os periféricos SPI estão em uso"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Todos os periféricos UART estão em uso"
|
||||
|
||||
@ -470,6 +472,10 @@ msgstr "O Baudrate não é suportado pelo periférico"
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Abaixo da taxa mínima de quadros"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "O Bit clock e o word select devem ser pinos sequenciais"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr ""
|
||||
@ -513,6 +519,10 @@ msgstr "Brilho não ajustável"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "O buffer + desvio é muito pequeno %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr "Os elementos do buffer devem ter 4 bytes de comprimento ou menos"
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -972,6 +982,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Houve uma falha na aquisição do mutex, err 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Falha ao alocar buffer RX"
|
||||
|
||||
@ -1104,6 +1115,10 @@ msgstr "IOs 0, 2 e 4 não suportam pullup interno em repouso (sleep)"
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "O IV deve ter %d bytes de comprimento"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr "No buffer, os elementos devem ter 4 bytes ou menos"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1120,6 +1135,18 @@ msgstr "O tamanho do buffer está incorreto"
|
||||
msgid "Init program size invalid"
|
||||
msgstr "O tamanho do programa Init é inválido"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
"A direção da definição inicial do pino conflita com a direção inicial do "
|
||||
"pino de saída"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
"A definição do estado inicial do pino está em conflito com estado do inicial "
|
||||
"do pino"
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr "A inicialização falhou devido à falta de memória"
|
||||
@ -1232,7 +1259,8 @@ msgstr "Argumento inválido"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Os valores por bits são inválidos"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "O tamanho do buffer é inválido"
|
||||
|
||||
@ -1307,10 +1335,10 @@ msgstr "Pino inválido para canal direito"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Pinos inválidos"
|
||||
|
||||
@ -1359,7 +1387,8 @@ msgstr "A contagem da voz é inválida"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Aqruivo de ondas inválido"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "O comprimento do bit/palavra são inválidos"
|
||||
|
||||
@ -1486,6 +1515,7 @@ msgstr "Nenhum DAC no chip"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Nenhum canal DMA foi encontrado"
|
||||
@ -1552,6 +1582,14 @@ msgstr "Sem suporte de hardware no pino de clock"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Nenhum suporte de hardware no pino"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr "Sem entrada no programa"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr "Sem entrada ou saída no programa"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Nenhuma chave foi definida"
|
||||
@ -1641,13 +1679,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "A paridade ímpar não é compatível"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Apenas mono com 8 ou 16 bits com "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr "Somente IN/OUT de até 8 suportados"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr "Somente os endereços IPv4 são suportados"
|
||||
@ -1697,6 +1732,10 @@ msgstr "A operação ou o recurso não é suportado"
|
||||
msgid "Operation timed out"
|
||||
msgstr "A operação expirou"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr "Os elementos da saída do buffer devem ter 4 bytes ou menos"
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr "Sem memória"
|
||||
@ -1872,7 +1911,7 @@ msgstr "Erro DeInit RNG"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "Houve um erro na inicialização do RNG"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr "Ainda não há suporte para o RS485 neste dispositivo"
|
||||
|
||||
@ -1909,7 +1948,7 @@ msgstr "Somente leitura"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Sistema de arquivos somente leitura"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "Objeto de leitura apenas"
|
||||
|
||||
@ -2156,6 +2195,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Para sair, por favor, reinicie a placa sem "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Muitos canais na amostra."
|
||||
|
||||
@ -2196,10 +2236,6 @@ msgstr "Houve um erro na inicialização do UART"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "Houve um erro na reinicialização do UART"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr "O UART ainda não é suportado"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "Houve um erro na gravação UART"
|
||||
@ -2226,6 +2262,7 @@ msgstr "O valor UUID não é um buffer str, int ou byte"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Não é possível alocar buffers para conversão assinada"
|
||||
@ -2539,8 +2576,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "a operação binário %q não foi implementada"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "os bits devem ser 7, 8 ou 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr "os bits devem estar na faixa entre 5 a 9"
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2771,6 +2808,10 @@ msgstr "o arg chr() está fora do intervalo(256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr "o círculo só pode ser registrado em um pai"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr "código fora do alcance 0~127"
|
||||
@ -3786,6 +3827,7 @@ msgstr "o pow() com 3 argumentos requer números inteiros"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr "pressionando o botão de boot na inicialização.\n"
|
||||
|
||||
@ -3865,6 +3907,7 @@ msgstr ""
|
||||
"ou 'B'"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "Taxa de amostragem fora do intervalo"
|
||||
|
||||
@ -3936,7 +3979,7 @@ msgstr "sos[:, 3] deve ser um em todos"
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr "o sosfilt requer que os argumentos sejam iteráveis"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr "a paleta de origem é muito grande"
|
||||
|
||||
@ -4298,6 +4341,19 @@ msgstr "zi deve ser de um tipo float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi deve estar na forma (n_section, 2)"
|
||||
|
||||
#~ msgid "Initial set pin direcion conflicts with initial out pin direction"
|
||||
#~ msgstr ""
|
||||
#~ "A direção do pino inicial está em conflito com a direção inicial do pino"
|
||||
|
||||
#~ msgid "UART not yet supported"
|
||||
#~ msgstr "O UART ainda não é suportado"
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "os bits devem ser 7, 8 ou 9"
|
||||
|
||||
#~ msgid "Only IN/OUT of up to 8 supported"
|
||||
#~ msgstr "Somente IN/OUT de até 8 suportados"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA ou SCL precisa de um pull up"
|
||||
|
||||
|
89
locale/sv.po
89
locale/sv.po
@ -6,7 +6,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2021-02-21 22:27+0000\n"
|
||||
"PO-Revision-Date: 2021-03-01 15:19+0000\n"
|
||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sv\n"
|
||||
@ -110,6 +110,7 @@ msgstr "%q måste vara >= 1"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q måste vara en tuple av längd 2"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q utanför intervallet"
|
||||
@ -340,6 +341,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "All SPI-kringutrustning används"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Alla UART-kringutrustning används"
|
||||
|
||||
@ -463,6 +465,10 @@ msgstr "Baudrate stöds inte av kringutrustning"
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Under minsta bildfrekvens"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "Bitklocka och word select måste vara sekventiella pinnar"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
msgstr "Bitklocka och ordval måste dela en klockenhet"
|
||||
@ -504,6 +510,10 @@ msgstr "Ljusstyrka kan inte justeras"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Buffert + offset för liten %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr "Buffertelement måste vara fyra byte långa eller mindre"
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -960,6 +970,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Det gick inte att förvärva mutex, fel 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Det gick inte att tilldela RX-buffert"
|
||||
|
||||
@ -1091,6 +1102,10 @@ msgstr "IO 0, 2 & 4 stöder inte intern pullup för sovläge"
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "IV måste vara %d byte lång"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr "Inbuffertelement måste vara 4 byte långa eller mindre"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1107,6 +1122,16 @@ msgstr "Fel buffertstorlek"
|
||||
msgid "Init program size invalid"
|
||||
msgstr "Storlek på init-program ogiltigt"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr "Initial pinn-riktning står i konflikt med initial utpinns-riktning"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
"Initial inställning av pinntillstånd är i konflikt med initialt "
|
||||
"utpinntillstånd"
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr "Initieringen misslyckades på grund av minnesbrist"
|
||||
@ -1217,7 +1242,8 @@ msgstr "Ogiltigt argument"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Ogiltigt värde för bitar per värde"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Ogiltig buffertstorlek"
|
||||
|
||||
@ -1292,10 +1318,10 @@ msgstr "Ogiltig pinne för höger kanal"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Ogiltiga pinnar"
|
||||
|
||||
@ -1344,7 +1370,8 @@ msgstr "Ogiltigt kanalantal"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Ogiltig wave-fil"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "Ogiltig word-/bitlängd"
|
||||
|
||||
@ -1472,6 +1499,7 @@ msgstr "Ingen DAC på chipet"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Ingen DMA-kanal hittades"
|
||||
@ -1538,6 +1566,14 @@ msgstr "Inget hårdvarustöd på clk-pinne"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Inget hårdvarustöd på pinne"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr "Inget in i programmet"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr "Inget in eller ut i programmet"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Ingen nyckel angavs"
|
||||
@ -1626,13 +1662,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Udda paritet stöds inte"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Endast 8 eller 16 bitars mono med "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr "Endast IN/OUT på upp till 8 stöds"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr "Endast IPv4-adresser stöds"
|
||||
@ -1681,6 +1714,10 @@ msgstr "Operation eller funktion stöds inte"
|
||||
msgid "Operation timed out"
|
||||
msgstr "Åtgärden orsakade timeout"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr "Utbuffertelement ska vara max fyra byte långa"
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr "Slut på minne"
|
||||
@ -1851,7 +1888,7 @@ msgstr "RNG DeInit-fel"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "RNG Init-fel"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr "RS485 stöds ännu inte på den här enheten"
|
||||
|
||||
@ -1888,7 +1925,7 @@ msgstr "Skrivskyddad"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Skrivskyddat filsystem"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "Skrivskyddat objekt"
|
||||
|
||||
@ -2131,6 +2168,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "För att avsluta, gör reset på kortet utan "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "För många kanaler i sampling."
|
||||
|
||||
@ -2170,10 +2208,6 @@ msgstr "UART Init-fel"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "UART reinit-fel"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr "UART stöds ännu inte"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "UART skrivfel"
|
||||
@ -2200,6 +2234,7 @@ msgstr "UUID-värdet är inte str, int eller byte-buffert"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Det går inte att allokera buffert för signerad konvertering"
|
||||
@ -2509,8 +2544,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "binär op %q är inte implementerad"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bits måste vara 7, 8 eller 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr "bits måste mellan 5 och 9"
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2739,6 +2774,10 @@ msgstr "chr() arg är inte i intervallet(256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr "circle kan endast registreras i en förälder"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr "kod utanför intervallet 0~127"
|
||||
@ -3745,6 +3784,7 @@ msgstr "pow() med 3 argument kräver heltal"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr "trycka på startknappen vid start.\n"
|
||||
|
||||
@ -3824,6 +3864,7 @@ msgstr ""
|
||||
"'b' eller 'B'"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "samplingsfrekvens utanför räckvidden"
|
||||
|
||||
@ -3895,7 +3936,7 @@ msgstr "sos[:, 3] måste vara ettor"
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr "sosfilt kräver iterable argument"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr "källpalett för stor"
|
||||
|
||||
@ -4257,6 +4298,18 @@ msgstr "zi måste vara av typ float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi måste vara i formen (n_section, 2)"
|
||||
|
||||
#~ msgid "Initial set pin direcion conflicts with initial out pin direction"
|
||||
#~ msgstr "Initial pinn-riktning står i konflikt med initial utpinn-riktning"
|
||||
|
||||
#~ msgid "UART not yet supported"
|
||||
#~ msgstr "UART stöds ännu inte"
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bits måste vara 7, 8 eller 9"
|
||||
|
||||
#~ msgid "Only IN/OUT of up to 8 supported"
|
||||
#~ msgstr "Endast IN/OUT på upp till 8 stöds"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA eller SCL behöver en pullup"
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgstr ""
|
||||
"Project-Id-Version: circuitpython-cn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2021-02-09 14:03+0000\n"
|
||||
"PO-Revision-Date: 2021-03-01 15:19+0000\n"
|
||||
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
"Language: zh_Latn_pinyin\n"
|
||||
@ -15,7 +15,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 4.5-dev\n"
|
||||
"X-Generator: Weblate 4.5\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -112,6 +112,7 @@ msgstr "%q bìxū dàyú huò děngyú 1"
|
||||
msgid "%q must be a tuple of length 2"
|
||||
msgstr "%q bìxū shì chángdù wèi 2 de yuán zǔ"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
#: shared-bindings/canio/Match.c
|
||||
msgid "%q out of range"
|
||||
msgstr "%q chāochū fànwéi"
|
||||
@ -342,6 +343,7 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Suǒyǒu SPI wàiwéi qì zhèngzài shǐyòng"
|
||||
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Suǒyǒu UART wàiwéi zhèngzài shǐyòng"
|
||||
|
||||
@ -465,6 +467,10 @@ msgstr "wài shè bù zhī chí de bō tè lā tè"
|
||||
msgid "Below minimum frame rate"
|
||||
msgstr "Dī yú zuìdī zhèng sùlǜ"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "wèi shí zhōng hé dān cí xuǎn zé bì xū shì shùn xù yǐn jiǎo"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
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"
|
||||
@ -506,6 +512,10 @@ msgstr "Liàngdù wúfǎ tiáozhěng"
|
||||
msgid "Buffer + offset too small %d %d %d"
|
||||
msgstr "Huǎnchōng qū hé piān yí liàng tài xiǎo %d %d %d"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Buffer elements must be 4 bytes long or less"
|
||||
msgstr "huǎn chōng yuán jiàn bì xū wéi 4 zì jié cháng huò gèng shǎo"
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
msgid "Buffer incorrect size. Should be %d bytes."
|
||||
@ -959,6 +969,7 @@ msgid "Failed to acquire mutex, err 0x%04x"
|
||||
msgstr "Wúfǎ huòdé mutex, err 0x%04x"
|
||||
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Fēnpèi RX huǎnchōng shībài"
|
||||
|
||||
@ -1090,6 +1101,10 @@ msgstr "IOS 0, 2 + 4 bù zhī chí shuì mián zhōng de nèi bù shàng lā"
|
||||
msgid "IV must be %d bytes long"
|
||||
msgstr "IV bì xū wéi %d zì jié cháng"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "In buffer elements must be 4 bytes long or less"
|
||||
msgstr "zài huǎn chōng yuán jiàn zhōng bì xū shì 4 zì jié cháng huò gèng shǎo"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
@ -1106,6 +1121,18 @@ msgstr "Huǎnchōng qū dàxiǎo bù zhèngquè"
|
||||
msgid "Init program size invalid"
|
||||
msgstr "Init chéng xù dà xiǎo wú xiào"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin direction conflicts with initial out pin direction"
|
||||
msgstr ""
|
||||
"chū shǐ shè zhì yǐn jiǎo fāng xiàng yǔ chū shǐ chū yǐn jiǎo fāng xiàng chōng "
|
||||
"tū"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Initial set pin state conflicts with initial out pin state"
|
||||
msgstr ""
|
||||
"chū shǐ shè zhì yǐn jiǎo zhuàng tài yǔ chū shǐ chū yǐn jiǎo zhuàng tài chōng "
|
||||
"tū"
|
||||
|
||||
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "Initialization failed due to lack of memory"
|
||||
msgstr "yóu yú nèi cún bù zú, chū shǐ huà shī bài"
|
||||
@ -1114,6 +1141,7 @@ msgstr "yóu yú nèi cún bù zú, chū shǐ huà shī bài"
|
||||
#, c-format
|
||||
msgid "Input buffer length (%d) must be a multiple of the strand count (%d)"
|
||||
msgstr ""
|
||||
"shū rù huǎn chōng qū cháng dù (%d) bì xū shì liàn jì shù de bèi shù (%d)"
|
||||
|
||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||
msgid "Input taking too long"
|
||||
@ -1216,7 +1244,8 @@ msgstr "Wúxiào de cānshù"
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Měi gè zhí de wèi wúxiào"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
msgstr "Wúxiào de huǎnchōng qū dàxiǎo"
|
||||
|
||||
@ -1291,10 +1320,10 @@ msgstr "Yòuxián tōngdào yǐn jiǎo wúxiào"
|
||||
#: ports/esp32s2/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/SPI.c
|
||||
#: ports/esp32s2/common-hal/busio/UART.c ports/esp32s2/common-hal/canio/CAN.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c ports/nrf/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/busio/SPI.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "Invalid pins"
|
||||
msgstr "Wúxiào de yǐn jiǎo"
|
||||
|
||||
@ -1343,7 +1372,8 @@ msgstr "Wúxiào de yǔyīn jìshù"
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Wúxiào de làng làngcháo wénjiàn"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
|
||||
msgid "Invalid word/bit length"
|
||||
msgstr "Wúxiào de zì/wèi chángdù"
|
||||
|
||||
@ -1471,13 +1501,14 @@ msgstr "Méiyǒu DAC zài xīnpiàn shàng de"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA channel found"
|
||||
msgstr "Wèi zhǎodào DMA píndào"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "No DMA pacing timer found"
|
||||
msgstr ""
|
||||
msgstr "wèi zhǎo dào DMA qǐ bó qì"
|
||||
|
||||
#: shared-module/adafruit_bus_device/I2CDevice.c
|
||||
#, c-format
|
||||
@ -1537,6 +1568,14 @@ msgstr "Shízhōng yǐn jiǎo wú yìngjiàn zhīchí"
|
||||
msgid "No hardware support on pin"
|
||||
msgstr "Méiyǒu zài yǐn jiǎo shàng de yìngjiàn zhīchí"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in in program"
|
||||
msgstr "chéng xù zhōng méi yǒu"
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "No in or out in program"
|
||||
msgstr "chéng xù zhōng méi yǒu jìn chū"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Wèi zhǐdìng mì yào"
|
||||
@ -1624,13 +1663,10 @@ msgid "Odd parity is not supported"
|
||||
msgstr "Bù zhīchí jīshù"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr "Zhǐyǒu 8 huò 16 wèi dānwèi "
|
||||
|
||||
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
|
||||
msgid "Only IN/OUT of up to 8 supported"
|
||||
msgstr "jǐn zhī chí zuì duō 8 gè IN/OUT"
|
||||
|
||||
#: ports/esp32s2/common-hal/wifi/__init__.c
|
||||
msgid "Only IPv4 addresses supported"
|
||||
msgstr "Jǐn zhīchí IPv4 dìzhǐ"
|
||||
@ -1680,6 +1716,10 @@ msgstr "bù zhī chí cāo zuò huò gōng néng"
|
||||
msgid "Operation timed out"
|
||||
msgstr "cāo zuò yǐ fēn shí"
|
||||
|
||||
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
|
||||
msgid "Out buffer elements must be 4 bytes long or less"
|
||||
msgstr "chū huǎn chōng yuán jiàn bì xū shì 4 zì jié cháng huò gèng shǎo"
|
||||
|
||||
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
|
||||
msgid "Out of memory"
|
||||
msgstr "nèi cún bù zú"
|
||||
@ -1691,7 +1731,7 @@ msgstr "tào jiē zì wài"
|
||||
#: shared-bindings/bitops/__init__.c
|
||||
#, c-format
|
||||
msgid "Output buffer must be at least %d bytes"
|
||||
msgstr ""
|
||||
msgstr "shū chū huǎn chōng qū bì xū zhì shǎo wéi %d zì jié"
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "Oversample must be multiple of 8."
|
||||
@ -1770,7 +1810,7 @@ msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Pins must share PWM slice"
|
||||
msgstr ""
|
||||
msgstr "yǐn jiǎo bì xū gòng xiǎng PWM qiē piàn"
|
||||
|
||||
#: py/builtinhelp.c
|
||||
msgid "Plus any modules on the filesystem\n"
|
||||
@ -1846,7 +1886,7 @@ msgstr "RNG qǔxiāo chūshǐhuà cuòwù"
|
||||
msgid "RNG Init Error"
|
||||
msgstr "RNG chūshǐhuà cuòwù"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#: ports/nrf/common-hal/busio/UART.c ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "RS485 Not yet supported on this device"
|
||||
msgstr "RS485 cǐ shè bèi shàng bù zhī chí"
|
||||
|
||||
@ -1883,7 +1923,7 @@ msgstr "Zhǐ dú"
|
||||
msgid "Read-only filesystem"
|
||||
msgstr "Zhǐ dú wénjiàn xìtǒng"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
#: shared-module/bitmaptools/__init__.c shared-module/displayio/Bitmap.c
|
||||
msgid "Read-only object"
|
||||
msgstr "Zhǐ dú duìxiàng"
|
||||
|
||||
@ -2016,11 +2056,11 @@ msgstr "Duīzhàn dàxiǎo bìxū zhìshǎo 256"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
msgstr "lì tǐ shēng zuǒ bì xū shì zài PWM tōng dào A"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo right must be on PWM channel B"
|
||||
msgstr ""
|
||||
msgstr "lì tǐ shēng yòu cè bì xū zài PWM tōng dào B shàng"
|
||||
|
||||
#: shared-bindings/multiterminal/__init__.c
|
||||
msgid "Stream missing readinto() or write() method."
|
||||
@ -2125,6 +2165,7 @@ msgid "To exit, please reset the board without "
|
||||
msgstr "Yào tuìchū, qǐng chóng zhì bǎnkuài ér bùyòng "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Too many channels in sample."
|
||||
msgstr "Chōuyàng zhōng de píndào tài duō."
|
||||
|
||||
@ -2164,10 +2205,6 @@ msgstr "UART chūshǐhuà cuòwù"
|
||||
msgid "UART Re-init error"
|
||||
msgstr "UART chóngxīn chūshǐhuà cuòwù"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/UART.c
|
||||
msgid "UART not yet supported"
|
||||
msgstr "UART shàng wèi shòu zhī chí"
|
||||
|
||||
#: ports/stm/common-hal/busio/UART.c
|
||||
msgid "UART write error"
|
||||
msgstr "UART xiě cuòwù"
|
||||
@ -2194,6 +2231,7 @@ msgstr "UUID zhí bùshì str,int huò zì jié huǎnchōng qū"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Unable to allocate buffers for signed conversion"
|
||||
msgstr "Wúfǎ fēnpèi huǎnchōng qū yòng yú qiānmíng zhuǎnhuàn"
|
||||
@ -2504,8 +2542,8 @@ msgid "binary op %q not implemented"
|
||||
msgstr "èrjìnzhì bǎn qián bǎn %q wèi zhíxíng"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "bits must be 7, 8 or 9"
|
||||
msgstr "bǐtè bìxū shì 7,8 huò 9"
|
||||
msgid "bits must be in range 5 to 9"
|
||||
msgstr "wèi bì xū zài fàn wéi nèi 5 zhì 9"
|
||||
|
||||
#: shared-bindings/audiomixer/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
@ -2733,6 +2771,10 @@ msgstr "chr() cān shǔ bùzài fànwéi (256)"
|
||||
msgid "circle can only be registered in one parent"
|
||||
msgstr "quānzi zhǐ néng zài yī wèi jiāzhǎng zhōng zhùcè"
|
||||
|
||||
#: shared-bindings/bitmaptools/__init__.c
|
||||
msgid "clip point must be (x,y) tuple"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/msgpack/ExtType.c
|
||||
msgid "code outside range 0~127"
|
||||
msgstr "dài mǎ chāo chū fàn wéi 0~127"
|
||||
@ -3395,7 +3437,7 @@ msgstr "jìyì tǐ fēnpèi shībài, duī bèi suǒdìng"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
msgstr "nèi cún shì tú: cháng dù bú shì xiàng mù huà de bèi shù"
|
||||
|
||||
#: py/builtinimport.c
|
||||
msgid "module not found"
|
||||
@ -3738,6 +3780,7 @@ msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
|
||||
#: ports/esp32s2/boards/targett_module_clip_wrover/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
|
||||
#: ports/esp32s2/boards/unexpectedmaker_tinys2/mpconfigboard.h
|
||||
msgid "pressing boot button at start up.\n"
|
||||
msgstr "Zài qǐdòng shí àn qǐdòng ànniǔ.\n"
|
||||
|
||||
@ -3817,6 +3860,7 @@ msgstr ""
|
||||
"huò 'B' de shùzǔ"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/raspberrypi/common-hal/audiobusio/PDMIn.c
|
||||
msgid "sampling rate out of range"
|
||||
msgstr "qǔyàng lǜ chāochū fànwéi"
|
||||
|
||||
@ -3888,7 +3932,7 @@ msgstr "sos [:, 3] yīnggāi quán shì"
|
||||
msgid "sosfilt requires iterable arguments"
|
||||
msgstr "sosfilt xūyào diédài cānshù"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#: shared-bindings/bitmaptools/__init__.c shared-bindings/displayio/Bitmap.c
|
||||
msgid "source palette too large"
|
||||
msgstr "yuán miànbǎn tài dà"
|
||||
|
||||
@ -4176,7 +4220,7 @@ msgstr "kān mén gǒu chāoshí bìxū dàyú 0"
|
||||
#: shared-bindings/bitops/__init__.c
|
||||
#, c-format
|
||||
msgid "width must be from 2 to 8 (inclusive), not %d"
|
||||
msgstr ""
|
||||
msgstr "kuān dù bì xū cóng 2 dào 8 ( hán ), ér bù shì %d"
|
||||
|
||||
#: shared-bindings/rgbmatrix/RGBMatrix.c
|
||||
msgid "width must be greater than zero"
|
||||
@ -4250,6 +4294,15 @@ msgstr "zi bìxū wèi fú diǎn xíng"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
|
||||
|
||||
#~ msgid "UART not yet supported"
|
||||
#~ msgstr "UART shàng wèi shòu zhī chí"
|
||||
|
||||
#~ msgid "bits must be 7, 8 or 9"
|
||||
#~ msgstr "bǐtè bìxū shì 7,8 huò 9"
|
||||
|
||||
#~ msgid "Only IN/OUT of up to 8 supported"
|
||||
#~ msgstr "jǐn zhī chí zuì duō 8 gè IN/OUT"
|
||||
|
||||
#~ msgid "SDA or SCL needs a pull up"
|
||||
#~ msgstr "SDA huò SCL xūyào lādòng"
|
||||
|
||||
|
@ -12,6 +12,7 @@ EXTERNAL_FLASH_DEVICES = "MX25L51245G","GD25S512MD"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_MSGPACK = 0
|
||||
|
@ -11,3 +11,5 @@ LONGINT_IMPL = NONE
|
||||
CIRCUITPY_FULL_BUILD = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
|
||||
SUPEROPT_GC = 0
|
||||
|
@ -12,6 +12,7 @@ EXTERNAL_FLASH_DEVICES = "W25Q32JV_IQ"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
|
@ -12,6 +12,7 @@ EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
# Make room for frozen libs.
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
|
@ -13,6 +13,7 @@ EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
|
||||
# Turn off features and optimizations for Crickit build to make room for additional frozen libs.
|
||||
LONGINT_IMPL = NONE
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
|
@ -13,6 +13,7 @@ EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
|
||||
# Turn off features and optimizations for Crickit build to make room for additional frozen libs.
|
||||
LONGINT_IMPL = NONE
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
|
@ -14,6 +14,7 @@ LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_FULLBUILD = 0
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 1
|
||||
|
@ -12,6 +12,7 @@ EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
@ -19,20 +20,5 @@ CIRCUITPY_MSGPACK = 0
|
||||
CIRCUITPY_VECTORIO = 0
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
|
||||
CFLAGS_INLINE_LIMIT = 60
|
||||
SUPEROPT_GC = 0
|
||||
|
||||
CFLAGS_BOARD = --param max-inline-insns-auto=15
|
||||
ifeq ($(TRANSLATION), ja)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), de_DE)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
|
@ -13,6 +13,7 @@ LONGINT_IMPL = MPZ
|
||||
|
||||
# Make space for frozen libs
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
|
@ -13,6 +13,7 @@ CIRCUITPY_FULL_BUILD = 0
|
||||
# A number of modules are removed for RFM69 to make room for frozen libraries.
|
||||
# Many I/O functions are not available.
|
||||
CIRCUITPY_ANALOGIO = 1
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
|
@ -14,6 +14,7 @@ CIRCUITPY_FULL_BUILD = 0
|
||||
# A number of modules are removed for RFM9x to make room for frozen libraries.
|
||||
# Many I/O functions are not available.
|
||||
CIRCUITPY_ANALOGIO = 1
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
|
@ -12,6 +12,7 @@ EXTERNAL_FLASH_DEVICES = "S25FL064L"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
|
@ -12,3 +12,4 @@ EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_VECTORIO = 1
|
||||
CIRCUITPY__EVE = 1
|
||||
|
@ -15,6 +15,7 @@ CIRCUITPY_BITBANG_APA102 = 1
|
||||
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_GAMEPAD = 0
|
||||
|
@ -12,6 +12,7 @@ LONGINT_IMPL = MPZ
|
||||
# Not needed.
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_AUDIOMP3 = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_BLEIO_HCI = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||
|
@ -12,26 +12,12 @@ EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_MSGPACK = 0
|
||||
CIRCUITPY_VECTORIO = 0
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
|
||||
CFLAGS_INLINE_LIMIT = 60
|
||||
SUPEROPT_GC = 0
|
||||
|
||||
CFLAGS_BOARD = --param max-inline-insns-auto=15
|
||||
ifeq ($(TRANSLATION), ja)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), de_DE)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
|
@ -15,6 +15,7 @@ CIRCUITPY_DRIVE_LABEL = "PYCUBED"
|
||||
|
||||
# Not needed.
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||
CIRCUITPY_GAMEPAD = 0
|
||||
|
@ -15,6 +15,7 @@ CIRCUITPY_DRIVE_LABEL = "PYCUBED"
|
||||
|
||||
# Not needed.
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||
CIRCUITPY_GAMEPAD = 0
|
||||
|
@ -14,20 +14,11 @@ EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_MSGPACK = 0
|
||||
|
||||
SUPEROPT_GC = 0
|
||||
|
||||
CFLAGS_BOARD = --param max-inline-insns-auto=15
|
||||
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), de_DE)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
|
@ -16,6 +16,7 @@ LONGINT_IMPL = MPZ
|
||||
# No I2S on SAMD51G
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
# Make room for more stuff
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
|
@ -12,6 +12,7 @@ EXTERNAL_FLASH_DEVICES = GD25Q32C
|
||||
LONGINT_IMPL = NONE
|
||||
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_GAMEPAD = 0
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
|
@ -12,6 +12,7 @@ EXTERNAL_FLASH_DEVICES = "W25Q16JV_IQ"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_GAMEPAD = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_MSGPACK = 0
|
||||
|
@ -13,6 +13,7 @@ LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_VECTORIO = 0
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
|
||||
|
@ -12,6 +12,7 @@ EXTERNAL_FLASH_DEVICES = "W25Q32FV"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_GAMEPAD = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
|
@ -13,6 +13,7 @@ LONGINT_IMPL = MPZ
|
||||
|
||||
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
@ -20,40 +21,5 @@ CIRCUITPY_MSGPACK = 0
|
||||
CIRCUITPY_VECTORIO = 0
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
|
||||
CFLAGS_INLINE_LIMIT = 55
|
||||
SUPEROPT_GC = 0
|
||||
|
||||
CFLAGS_BOARD = --param max-inline-insns-auto=15
|
||||
ifeq ($(TRANSLATION), ja)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
endif
|
||||
ifeq ($(TRANSLATION), de_DE)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
ifeq ($(TRANSLATION), pl)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
ifeq ($(TRANSLATION), fr)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
ifeq ($(TRANSLATION), pt_BR)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
ifeq ($(TRANSLATION), es)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 35
|
||||
SUPEROPT_VM = 0
|
||||
endif
|
||||
|
@ -16,6 +16,7 @@ CIRCUITPY_BITBANG_APA102 = 1
|
||||
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_GAMEPAD = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_RTC = 0
|
||||
|
@ -13,6 +13,7 @@ LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_RTC = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
|
@ -18,8 +18,10 @@ CIRCUITPY_ANALOGIO = 1
|
||||
CIRCUITPY_GAMEPAD = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||
@ -34,10 +36,4 @@ FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage/ugame10
|
||||
|
||||
CIRCUITPY_DISPLAY_FONT = $(TOP)/ports/atmel-samd/boards/ugame10/brutalist-6.bdf
|
||||
|
||||
# Tweak inlining depending on language.
|
||||
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||
RELEASE_NEEDS_CLEAN_BUILD = 1
|
||||
CFLAGS_INLINE_LIMIT = 45
|
||||
else
|
||||
CFLAGS_INLINE_LIMIT = 70
|
||||
endif
|
||||
SUPEROPT_GC = 0
|
||||
|
@ -17,6 +17,7 @@ CIRCUITPY_AUDIOIO = 1
|
||||
|
||||
# Disable modules that are unusable on this special-purpose board.
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
|
@ -18,6 +18,7 @@ LONGINT_IMPL = MPZ
|
||||
# Disable modules that are unusable on this special-purpose board.
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_BLEIO_HCI = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "samd/timers.h"
|
||||
#include "timer_handler.h"
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate() {
|
||||
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self) {
|
||||
uint8_t timer_index = find_free_timer();
|
||||
if (timer_index == 0xff) {
|
||||
return NULL;
|
||||
|
@ -27,7 +27,9 @@
|
||||
#ifndef MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_RGBMATRIX_RGBMATRIX_H
|
||||
#define MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_RGBMATRIX_RGBMATRIX_H
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate(void);
|
||||
#include "shared-module/rgbmatrix/RGBMatrix.h"
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self);
|
||||
void common_hal_rgbmatrix_timer_enable(void*);
|
||||
void common_hal_rgbmatrix_timer_disable(void*);
|
||||
void common_hal_rgbmatrix_timer_free(void*);
|
||||
|
@ -151,7 +151,7 @@ LDFLAGS = \
|
||||
--end-group \
|
||||
-L$(BUILD) \
|
||||
|
||||
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_CXD56 -DCFG_TUD_MIDI_RX_BUFSIZE=512 -DCFG_TUD_CDC_RX_BUFSIZE=512 -DCFG_TUD_MIDI_TX_BUFSIZE=512 -DCFG_TUD_CDC_TX_BUFSIZE=512 -DCFG_TUD_MSC_BUFSIZE=512 $(CFLAGS_MOD)
|
||||
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_CXD56 -DCFG_TUD_MIDI_RX_BUFSIZE=512 -DCFG_TUD_CDC_RX_BUFSIZE=1024 -DCFG_TUD_MIDI_TX_BUFSIZE=512 -DCFG_TUD_CDC_TX_BUFSIZE=1024 -DCFG_TUD_MSC_BUFSIZE=512 $(CFLAGS_MOD)
|
||||
|
||||
SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL)) \
|
||||
$(addprefix shared-bindings/, $(SRC_BINDINGS_ENUMS)) \
|
||||
|
@ -4,5 +4,5 @@ USB_PRODUCT = "Spresense"
|
||||
USB_MANUFACTURER = "Sony"
|
||||
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
||||
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_MSGPACK = 0
|
||||
|
@ -105,20 +105,27 @@ bool common_hal_analogio_analogin_deinited(analogio_analogin_obj_t *self) {
|
||||
}
|
||||
|
||||
uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) {
|
||||
uint16_t value = 0;
|
||||
int16_t value = 0;
|
||||
|
||||
read(analogin_dev[self->number].fd, &value, sizeof(value));
|
||||
|
||||
return value;
|
||||
return (uint16_t) 32768 + (uint16_t) value;
|
||||
}
|
||||
|
||||
// Reference voltage is a fixed value which is depending on the board.
|
||||
// e.g.)
|
||||
// - Reference Voltage of A4 and A5 pins on Main Board is 0.7V.
|
||||
// - Reference Voltage of A0 ~ A5 pins on External Interface board
|
||||
// is selected 3.3V or 5.0V by a IO Volt jumper pin.
|
||||
// - Reference Voltage of A2 and A3 pins on Main Board is 0.7V.
|
||||
// - Reference Voltage of A0 ~ A5 pins on External Interface board is 5.0V
|
||||
float common_hal_analogio_analogin_get_reference_voltage(analogio_analogin_obj_t *self) {
|
||||
return 0.0f;
|
||||
float voltage;
|
||||
|
||||
if (self->number == 2 || self->number == 3) {
|
||||
voltage = 0.0f;
|
||||
} else {
|
||||
voltage = 5.0f;
|
||||
}
|
||||
|
||||
return voltage;
|
||||
}
|
||||
|
||||
void analogin_reset(void) {
|
||||
|
@ -10,8 +10,14 @@ USB_MSC_EP_NUM_IN = 4
|
||||
# Number of USB endpoint pairs.
|
||||
USB_NUM_EP = 6
|
||||
|
||||
# Define an equivalent for MICROPY_LONGINT_IMPL, to pass to $(MPY-TOOL) in py/mkrules.mk
|
||||
# $(MPY-TOOL) needs to know what kind of longint to use (if any) to freeze long integers.
|
||||
# This should correspond to the MICROPY_LONGINT_IMPL definition in mpconfigport.h.
|
||||
MPY_TOOL_LONGINT_IMPL = -mlongint-impl=mpz
|
||||
|
||||
# Longints can be implemented as mpz, as longlong, or not
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_CAMERA = 1
|
||||
|
@ -1,13 +1,15 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO14) },
|
||||
|
@ -14,10 +14,7 @@ CIRCUITPY_ESP_FLASH_MODE=qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# CIRCUITPY_MODULE=wroom
|
||||
|
||||
CIRCUITPY_BITBANG_NEOPIXEL = 1
|
||||
|
||||
# Include these Python libraries in firmware.
|
||||
# FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
|
@ -1,73 +1,86 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO18) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO7) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO6) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO6) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO5) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO36), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO36) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO36) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO35), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO35) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D24), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDO), MP_ROM_PTR(&pin_GPIO35) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D24), MP_ROM_PTR(&pin_GPIO35) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO37), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO37) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDI), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO37) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO34), MP_ROM_PTR(&pin_GPIO34) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO37) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO37) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO14), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO14) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO9) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO9) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO38), MP_ROM_PTR(&pin_GPIO38) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO38) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO38) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO33), MP_ROM_PTR(&pin_GPIO33) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D20), MP_ROM_PTR(&pin_GPIO33) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D20), MP_ROM_PTR(&pin_GPIO33) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO43), MP_ROM_PTR(&pin_GPIO43) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO43) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO43) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO44), MP_ROM_PTR(&pin_GPIO44) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO44) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO44) },
|
||||
|
||||
// Battery voltage sense pin
|
||||
// I really don't know what name to use here. Adafruit use BATTERY & VOLTAGE_MONITOR
|
||||
// I prefer VBAT or VBAT_SENSE
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_VBAT), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_VBAT_SENSE), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
// 5V present sense pin
|
||||
{ MP_ROM_QSTR(MP_QSTR_VBUS), MP_ROM_PTR(&pin_GPIO21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_VBUS_SENSE), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
@ -93,6 +93,10 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
self->character_bits = bits;
|
||||
self->timeout_ms = timeout * 1000;
|
||||
|
||||
if (self->character_bits != 7 && self->character_bits != 8) {
|
||||
mp_raise_ValueError(translate("Invalid word/bit length"));
|
||||
}
|
||||
|
||||
// We are transmitting one direction if one pin is NULL and the other isn't.
|
||||
bool is_onedirection = (rx == NULL) != (tx == NULL);
|
||||
bool uart_taken = false;
|
||||
@ -154,10 +158,6 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
mp_raise_ValueError(translate("Hardware in use, try alternative pins"));
|
||||
}
|
||||
|
||||
if(self->rx == NULL && self->tx == NULL) {
|
||||
mp_raise_ValueError(translate("Invalid pins"));
|
||||
}
|
||||
|
||||
if (is_onedirection && ((rts != NULL) || (cts != NULL))) {
|
||||
mp_raise_ValueError(translate("Both RX and TX required for flow control"));
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ INTERNAL_FLASH_FILESYSTEM = 1
|
||||
|
||||
CIRCUITPY_AUDIOMP3 = 0
|
||||
CIRCUITPY_BITBANGIO = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_BUSIO = 1
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
|
@ -13,6 +13,7 @@ INTERNAL_FLASH_FILESYSTEM = 1
|
||||
|
||||
CIRCUITPY_AESIO = 1
|
||||
CIRCUITPY_AUDIOMP3 = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
CIRCUITPY_BUSIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
|
@ -144,6 +144,10 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
mp_float_t timeout, uint16_t receiver_buffer_size, byte* receiver_buffer,
|
||||
bool sigint_enabled) {
|
||||
|
||||
if (bits != 8) {
|
||||
mp_raise_ValueError(translate("Invalid word/bit length"));
|
||||
}
|
||||
|
||||
if ((rs485_dir != NULL) || (rs485_invert)) {
|
||||
mp_raise_ValueError(translate("RS485 Not yet supported on this device"));
|
||||
}
|
||||
|
@ -32,7 +32,7 @@
|
||||
|
||||
extern void _PM_IRQ_HANDLER(void);
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate() {
|
||||
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self) {
|
||||
nrfx_timer_t *timer = nrf_peripherals_allocate_timer_or_throw();
|
||||
nrf_peripherals_timer_never_reset(timer);
|
||||
return timer->p_reg;
|
||||
|
@ -27,7 +27,9 @@
|
||||
#ifndef MICROPY_INCLUDED_NRF_COMMON_HAL_RGBMATRIX_RGBMATRIX_H
|
||||
#define MICROPY_INCLUDED_NRF_COMMON_HAL_RGBMATRIX_RGBMATRIX_H
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate(void);
|
||||
#include "shared-module/rgbmatrix/RGBMatrix.h"
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self);
|
||||
void common_hal_rgbmatrix_timer_enable(void*);
|
||||
void common_hal_rgbmatrix_timer_disable(void*);
|
||||
void common_hal_rgbmatrix_timer_free(void*);
|
||||
|
@ -231,8 +231,9 @@ SRC_SHARED_MODULE_EXPANDED = $(addprefix shared-bindings/, $(SRC_SHARED_MODULE))
|
||||
SRC_COMMON_HAL_SHARED_MODULE_EXPANDED = $(sort $(SRC_COMMON_HAL_EXPANDED) $(SRC_SHARED_MODULE_EXPANDED))
|
||||
|
||||
SRC_S = supervisor/$(CHIP_FAMILY)_cpu.s
|
||||
SRC_S_UPPER = bs2_default_padded_checksummed.S \
|
||||
sdk/src/rp2_common/hardware_divider/divider.S \
|
||||
BOOT2_S_UPPER ?= sdk/src/rp2_common/boot_stage2/boot2_generic_03h.S
|
||||
BOOT2_S_CFLAGS ?= -DPICO_FLASH_SPI_CLKDIV=2
|
||||
SRC_S_UPPER = sdk/src/rp2_common/hardware_divider/divider.S \
|
||||
sdk/src/rp2_common/hardware_irq/irq_handler_chain.S \
|
||||
sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S \
|
||||
sdk/src/rp2_common/pico_double/double_aeabi.S \
|
||||
@ -253,7 +254,23 @@ endif
|
||||
OBJ += $(addprefix $(BUILD)/, $(SRC_S:.s=.o))
|
||||
OBJ += $(addprefix $(BUILD)/, $(SRC_S_UPPER:.S=.o))
|
||||
OBJ += $(addprefix $(BUILD)/, $(SRC_MOD:.c=.o))
|
||||
OBJ += $(BUILD)/boot2_padded_checksummed.o
|
||||
|
||||
$(BUILD)/boot2_padded_checksummed.o: $(BUILD)/boot2_padded_checksummed.S
|
||||
$(STEPECHO) "CC $<"
|
||||
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD)/boot2_padded_checksummed.S: $(BUILD)/boot2.bin
|
||||
$(STEPECHO) "PAD_CHECKSUM $<"
|
||||
$(Q)$(PYTHON3) sdk/src/rp2_common/boot_stage2/pad_checksum -s 0xffffffff $< $@
|
||||
|
||||
$(BUILD)/boot2.bin: $(BUILD)/boot2.elf
|
||||
$(STEPECHO) "OBJCOPY $<"
|
||||
$(Q)$(OBJCOPY) -O binary $< $@
|
||||
|
||||
$(BUILD)/boot2.elf: $(BOOT2_S_UPPER) | $(BUILD)/
|
||||
$(STEPECHO) "BOOT $<"
|
||||
$(Q)$(CC) $(CFLAGS) $(BOOT2_S_CFLAGS) -Isdk/src/rp2_common/boot_stage2/asminclude --specs=nosys.specs -nostartfiles -Wl,-T,sdk/src/rp2_common/boot_stage2/boot_stage2.ld -o $@ $<
|
||||
|
||||
SRC_QSTR += $(SRC_C) $(SRC_SUPERVISOR) $(SRC_COMMON_HAL_EXPANDED) $(SRC_SHARED_MODULE_EXPANDED)
|
||||
|
||||
|
@ -39,6 +39,16 @@
|
||||
|
||||
#define AUDIO_DMA_CHANNEL_COUNT NUM_DMA_CHANNELS
|
||||
|
||||
void audio_dma_reset(void) {
|
||||
for (size_t channel = 0; channel < AUDIO_DMA_CHANNEL_COUNT; channel++) {
|
||||
if (MP_STATE_PORT(playing_audio)[channel] == NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
audio_dma_stop(MP_STATE_PORT(playing_audio)[channel]);
|
||||
}
|
||||
}
|
||||
|
||||
void audio_dma_convert_signed(audio_dma_t* dma, uint8_t* buffer, uint32_t buffer_length,
|
||||
uint8_t** output_buffer, uint32_t* output_buffer_length) {
|
||||
if (dma->first_buffer_free) {
|
||||
@ -292,9 +302,16 @@ void audio_dma_stop(audio_dma_t* dma) {
|
||||
for (size_t i = 0; i < 2; i++) {
|
||||
size_t channel = dma->channel[i];
|
||||
|
||||
dma_channel_config c = dma_channel_get_default_config(dma->channel[i]);
|
||||
channel_config_set_enable(&c, false);
|
||||
dma_channel_set_config(channel, &c, false /* trigger */);
|
||||
|
||||
if (dma_channel_is_busy(channel)) {
|
||||
dma_channel_abort(channel);
|
||||
}
|
||||
dma_channel_set_read_addr(channel, NULL, false /* trigger */);
|
||||
dma_channel_set_write_addr(channel, NULL, false /* trigger */);
|
||||
dma_channel_set_trans_count(channel, 0, false /* trigger */);
|
||||
dma_channel_unclaim(channel);
|
||||
MP_STATE_PORT(playing_audio)[channel] = NULL;
|
||||
dma->channel[i] = NUM_DMA_CHANNELS;
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "lib/utils/buffer_helper.h"
|
||||
#include "lib/utils/context_manager_helpers.h"
|
||||
#include "lib/utils/interrupt_char.h"
|
||||
#include "py/binary.h"
|
||||
#include "py/mperrno.h"
|
||||
#include "py/objproperty.h"
|
||||
#include "py/runtime.h"
|
||||
@ -64,16 +65,23 @@
|
||||
//| init: Optional[ReadableBuffer] = None,
|
||||
//| first_out_pin: Optional[microcontroller.Pin] = None,
|
||||
//| out_pin_count: int = 1,
|
||||
//| initial_out_pin_state: int = 0,
|
||||
//| initial_out_pin_direction: int = 0xffffffff,
|
||||
//| first_in_pin: Optional[microcontroller.Pin] = None,
|
||||
//| in_pin_count: int = 1,
|
||||
//| first_set_pin: Optional[microcontroller.Pin] = None,
|
||||
//| set_pin_count: int = 1,
|
||||
//| initial_set_pin_state: int = 0,
|
||||
//| initial_set_pin_direction: int = 0x1f,
|
||||
//| first_sideset_pin: Optional[microcontroller.Pin] = None,
|
||||
//| sideset_pin_count: int = 1,
|
||||
//| initial_sideset_pin_state: int = 0,
|
||||
//| initial_sideset_pin_direction: int = 0x1f,
|
||||
//| exclusive_pin_use: bool = True,
|
||||
//| auto_pull: bool = False,
|
||||
//| pull_threshold : int = 32,
|
||||
//| out_shift_right : bool = True,
|
||||
//| wait_for_txstall: bool = True,
|
||||
//| auto_push: bool = False,
|
||||
//| push_threshold : int = 32,
|
||||
//| in_shift_right : bool = True) -> None:
|
||||
@ -87,12 +95,18 @@
|
||||
//| is started so instructions may be intermingled
|
||||
//| :param ~microcontroller.Pin first_out_pin: the first pin to use with the OUT instruction
|
||||
//| :param int out_pin_count: the count of consecutive pins to use with OUT starting at first_out_pin
|
||||
//| :param int initial_out_pin_state: the initial output value for out pins starting at first_out_pin
|
||||
//| :param int initial_out_pin_direction: the initial output direction for out pins starting at first_out_pin
|
||||
//| :param ~microcontroller.Pin first_in_pin: the first pin to use with the IN instruction
|
||||
//| :param int in_pin_count: the count of consecutive pins to use with IN starting at first_in_pin
|
||||
//| :param ~microcontroller.Pin first_set_pin: the first pin to use with the SET instruction
|
||||
//| :param int set_pin_count: the count of consecutive pins to use with SET starting at first_set_pin
|
||||
//| :param int initial_set_pin_state: the initial output value for set pins starting at first_set_pin
|
||||
//| :param int initial_set_pin_direction: the initial output direction for set pins starting at first_set_pin
|
||||
//| :param ~microcontroller.Pin first_sideset_pin: the first pin to use with a side set
|
||||
//| :param int sideset_pin_count: the count of consecutive pins to use with a side set starting at first_sideset_pin
|
||||
//| :param int initial_sideset_pin_state: the initial output value for sideset pins starting at first_sideset_pin
|
||||
//| :param int initial_sideset_pin_direction: the initial output direction for sideset pins starting at first_sideset_pin
|
||||
//| :param bool exclusive_pin_use: When True, do not share any pins with other state machines. Pins are never shared with other peripherals
|
||||
//| :param bool auto_pull: When True, automatically load data from the tx FIFO into the
|
||||
//| output shift register (OSR) when an OUT instruction shifts more than pull_threshold bits
|
||||
@ -100,6 +114,10 @@
|
||||
//| :param bool out_shift_right: When True, data is shifted out the right side (LSB) of the
|
||||
//| OSR. It is shifted out the left (MSB) otherwise. NOTE! This impacts data alignment
|
||||
//| when the number of bytes is not a power of two (1, 2 or 4 bytes).
|
||||
//| :param bool wait_for_txstall: When True, writing data out will block until the TX FIFO and OSR are empty
|
||||
//| and an instruction is stalled waiting for more data. When False, data writes won't
|
||||
//| wait for the OSR to empty (only the TX FIFO) so make sure you give enough time before
|
||||
//| deiniting or stopping the state machine.
|
||||
//| :param bool auto_push: When True, automatically save data from input shift register
|
||||
//| (ISR) into the rx FIFO when an IN instruction shifts more than push_threshold bits
|
||||
//| :param int push_threshold: Number of bits to shift before saving the ISR value to the RX FIFO
|
||||
@ -113,29 +131,42 @@ STATIC mp_obj_t rp2pio_statemachine_make_new(const mp_obj_type_t *type, size_t n
|
||||
rp2pio_statemachine_obj_t *self = m_new_obj(rp2pio_statemachine_obj_t);
|
||||
self->base.type = &rp2pio_statemachine_type;
|
||||
enum { ARG_program, ARG_frequency, ARG_init,
|
||||
ARG_first_out_pin, ARG_out_pin_count,
|
||||
ARG_first_out_pin, ARG_out_pin_count, ARG_initial_out_pin_state, ARG_initial_out_pin_direction,
|
||||
ARG_first_in_pin, ARG_in_pin_count,
|
||||
ARG_first_set_pin, ARG_set_pin_count,
|
||||
ARG_first_sideset_pin, ARG_sideset_pin_count,
|
||||
ARG_first_set_pin, ARG_set_pin_count, ARG_initial_set_pin_state, ARG_initial_set_pin_direction,
|
||||
ARG_first_sideset_pin, ARG_sideset_pin_count, ARG_initial_sideset_pin_state, ARG_initial_sideset_pin_direction,
|
||||
ARG_exclusive_pin_use,
|
||||
ARG_auto_pull, ARG_pull_threshold, ARG_out_shift_right,
|
||||
ARG_wait_for_txstall,
|
||||
ARG_auto_push, ARG_push_threshold, ARG_in_shift_right};
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_program, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||
{ MP_QSTR_frequency, MP_ARG_REQUIRED | MP_ARG_INT },
|
||||
{ MP_QSTR_init, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||
|
||||
{ MP_QSTR_first_out_pin, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||
{ MP_QSTR_out_pin_count, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 1} },
|
||||
{ MP_QSTR_initial_out_pin_state, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
{ MP_QSTR_initial_out_pin_direction, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0xffffffff} },
|
||||
|
||||
{ MP_QSTR_first_in_pin, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||
{ MP_QSTR_in_pin_count, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 1} },
|
||||
|
||||
{ MP_QSTR_first_set_pin, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||
{ MP_QSTR_set_pin_count, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 1} },
|
||||
{ MP_QSTR_initial_set_pin_state, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
{ MP_QSTR_initial_set_pin_direction, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0x1f} },
|
||||
|
||||
{ MP_QSTR_first_sideset_pin, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||
{ MP_QSTR_sideset_pin_count, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 1} },
|
||||
{ MP_QSTR_initial_sideset_pin_state, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
{ MP_QSTR_initial_sideset_pin_direction, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0x1f} },
|
||||
|
||||
{ MP_QSTR_exclusive_pin_use, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = true} },
|
||||
{ MP_QSTR_auto_pull, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = false} },
|
||||
{ MP_QSTR_pull_threshold, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 32} },
|
||||
{ MP_QSTR_out_shift_right, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = true} },
|
||||
{ MP_QSTR_wait_for_txstall, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = true} },
|
||||
{ MP_QSTR_auto_push, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = false} },
|
||||
{ MP_QSTR_push_threshold, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 32} },
|
||||
{ MP_QSTR_in_shift_right, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = true} },
|
||||
@ -201,12 +232,13 @@ STATIC mp_obj_t rp2pio_statemachine_make_new(const mp_obj_type_t *type, size_t n
|
||||
bufinfo.buf, bufinfo.len / 2,
|
||||
args[ARG_frequency].u_int,
|
||||
init_bufinfo.buf, init_bufinfo.len / 2,
|
||||
first_out_pin, args[ARG_out_pin_count].u_int,
|
||||
first_out_pin, args[ARG_out_pin_count].u_int, args[ARG_initial_out_pin_state].u_int, args[ARG_initial_out_pin_direction].u_int,
|
||||
first_in_pin, args[ARG_in_pin_count].u_int,
|
||||
first_set_pin, args[ARG_set_pin_count].u_int,
|
||||
first_sideset_pin, args[ARG_sideset_pin_count].u_int,
|
||||
first_set_pin, args[ARG_set_pin_count].u_int, args[ARG_initial_set_pin_state].u_int, args[ARG_initial_set_pin_direction].u_int,
|
||||
first_sideset_pin, args[ARG_sideset_pin_count].u_int, args[ARG_initial_sideset_pin_state].u_int, args[ARG_initial_sideset_pin_direction].u_int,
|
||||
args[ARG_exclusive_pin_use].u_bool,
|
||||
args[ARG_auto_pull].u_bool, pull_threshold, args[ARG_out_shift_right].u_bool,
|
||||
args[ARG_wait_for_txstall].u_bool,
|
||||
args[ARG_auto_push].u_bool, push_threshold, args[ARG_in_shift_right].u_bool);
|
||||
return MP_OBJ_FROM_PTR(self);
|
||||
}
|
||||
@ -247,11 +279,53 @@ STATIC void check_for_deinit(rp2pio_statemachine_obj_t *self) {
|
||||
}
|
||||
}
|
||||
|
||||
// // | def restart(self, *other_state_machines) -> None:
|
||||
// // | """Restarts this state machine and any others given. They must share
|
||||
// // | an underlying PIO. An exception will be raised otherwise."""
|
||||
// // | ...
|
||||
// // |
|
||||
//| def restart(self) -> None:
|
||||
//| """Resets this state machine, runs any init and enables the clock."""
|
||||
// TODO: "and any others given. They must share an underlying PIO. An exception will be raised otherwise.""
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t rp2pio_statemachine_restart(mp_obj_t self_obj) {
|
||||
rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(self_obj);
|
||||
check_for_deinit(self);
|
||||
|
||||
common_hal_rp2pio_statemachine_restart(self);
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(rp2pio_statemachine_restart_obj, rp2pio_statemachine_restart);
|
||||
|
||||
|
||||
//| def run(self, instructions: ReadableBuffer) -> None:
|
||||
//| """Runs all given instructions. They will likely be interleaved with
|
||||
//| in-memory instructions. Make sure this doesn't wait for input!
|
||||
//|
|
||||
//| This can be used to output internal state to the RX FIFO and then
|
||||
//| read with `readinto`."""
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t rp2pio_statemachine_run(mp_obj_t self_obj, mp_obj_t instruction_obj) {
|
||||
rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(self_obj);
|
||||
check_for_deinit(self);
|
||||
|
||||
mp_buffer_info_t bufinfo;
|
||||
mp_get_buffer_raise(instruction_obj, &bufinfo, MP_BUFFER_READ);
|
||||
|
||||
common_hal_rp2pio_statemachine_run(self, bufinfo.buf, bufinfo.len);
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(rp2pio_statemachine_run_obj, rp2pio_statemachine_run);
|
||||
|
||||
//| def stop(self) -> None:
|
||||
//| """Stops the state machine clock. Use `restart` to enable it."""
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t rp2pio_statemachine_stop(mp_obj_t self_obj) {
|
||||
rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(self_obj);
|
||||
check_for_deinit(self);
|
||||
|
||||
common_hal_rp2pio_statemachine_stop(self);
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(rp2pio_statemachine_stop_obj, rp2pio_statemachine_stop);
|
||||
|
||||
//| def write(self, buffer: ReadableBuffer, *, start: int = 0, end: Optional[int] = None) -> None:
|
||||
//| """Write the data contained in ``buffer`` to the state machine. If the buffer is empty, nothing happens.
|
||||
@ -261,7 +335,6 @@ STATIC void check_for_deinit(rp2pio_statemachine_obj_t *self) {
|
||||
//| :param int end: End of the slice; this index is not included. Defaults to ``len(buffer)``"""
|
||||
//| ...
|
||||
//|
|
||||
|
||||
STATIC mp_obj_t rp2pio_statemachine_write(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
enum { ARG_buffer, ARG_start, ARG_end };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
@ -279,12 +352,17 @@ STATIC mp_obj_t rp2pio_statemachine_write(size_t n_args, const mp_obj_t *pos_arg
|
||||
int32_t start = args[ARG_start].u_int;
|
||||
size_t length = bufinfo.len;
|
||||
normalize_buffer_bounds(&start, args[ARG_end].u_int, &length);
|
||||
|
||||
if (length == 0) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
bool ok = common_hal_rp2pio_statemachine_write(self, ((uint8_t*)bufinfo.buf) + start, length);
|
||||
uint8_t* original_pointer = bufinfo.buf;
|
||||
int stride_in_bytes = mp_binary_get_size('@', bufinfo.typecode, NULL);
|
||||
if (stride_in_bytes > 4) {
|
||||
mp_raise_ValueError(translate("Buffer elements must be 4 bytes long or less"));
|
||||
}
|
||||
|
||||
bool ok = common_hal_rp2pio_statemachine_write(self, ((uint8_t*)bufinfo.buf) + start, length, stride_in_bytes);
|
||||
if (mp_hal_is_interrupted()) {
|
||||
return mp_const_none;
|
||||
}
|
||||
@ -296,110 +374,132 @@ STATIC mp_obj_t rp2pio_statemachine_write(size_t n_args, const mp_obj_t *pos_arg
|
||||
MP_DEFINE_CONST_FUN_OBJ_KW(rp2pio_statemachine_write_obj, 2, rp2pio_statemachine_write);
|
||||
|
||||
|
||||
// // | def readinto(self, buffer: WriteableBuffer, *, start: int = 0, end: Optional[int] = None) -> None:
|
||||
// // | """Read into ``buffer``. If the number of bytes to read is 0, nothing happens.
|
||||
// // |
|
||||
// // | :param ~_typing.WriteableBuffer buffer: Read data into this buffer
|
||||
// // | :param int start: Start of the slice of ``buffer`` to read into: ``buffer[start:end]``
|
||||
// // | :param int end: End of the slice; this index is not included. Defaults to ``len(buffer)``
|
||||
// // | :param int write_value: Value to write while reading. (Usually ignored.)"""
|
||||
// // | ...
|
||||
// // |
|
||||
//| def readinto(self, buffer: WriteableBuffer, *, start: int = 0, end: Optional[int] = None) -> None:
|
||||
//| """Read into ``buffer``. If the number of bytes to read is 0, nothing happens. The buffer
|
||||
//| include any data added to the fifo even if it was added before this was called.
|
||||
//|
|
||||
//| :param ~_typing.WriteableBuffer buffer: Read data into this buffer
|
||||
//| :param int start: Start of the slice of ``buffer`` to read into: ``buffer[start:end]``
|
||||
//| :param int end: End of the slice; this index is not included. Defaults to ``len(buffer)``"""
|
||||
//| ...
|
||||
//|
|
||||
|
||||
// STATIC mp_obj_t rp2pio_statemachine_readinto(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
// enum { ARG_buffer, ARG_start, ARG_end, ARG_write_value };
|
||||
// static const mp_arg_t allowed_args[] = {
|
||||
// { MP_QSTR_buffer, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
||||
// { MP_QSTR_start, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
// { MP_QSTR_end, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = INT_MAX} },
|
||||
// { MP_QSTR_write_value,MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
// };
|
||||
// rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||
// check_for_deinit(self);
|
||||
// check_lock(self);
|
||||
// mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
// mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
STATIC mp_obj_t rp2pio_statemachine_readinto(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
enum { ARG_buffer, ARG_start, ARG_end };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_buffer, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
||||
{ MP_QSTR_start, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
{ MP_QSTR_end, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = INT_MAX} },
|
||||
};
|
||||
rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||
check_for_deinit(self);
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
|
||||
// mp_buffer_info_t bufinfo;
|
||||
// mp_get_buffer_raise(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_WRITE);
|
||||
// int32_t start = args[ARG_start].u_int;
|
||||
// size_t length = bufinfo.len;
|
||||
// normalize_buffer_bounds(&start, args[ARG_end].u_int, &length);
|
||||
mp_buffer_info_t bufinfo;
|
||||
mp_get_buffer_raise(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_WRITE);
|
||||
int32_t start = args[ARG_start].u_int;
|
||||
size_t length = bufinfo.len;
|
||||
normalize_buffer_bounds(&start, args[ARG_end].u_int, &length);
|
||||
|
||||
// if (length == 0) {
|
||||
// return mp_const_none;
|
||||
// }
|
||||
if (length == 0) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
// bool ok = common_hal_rp2pio_statemachine_read(self, ((uint8_t*)bufinfo.buf) + start, length, args[ARG_write_value].u_int);
|
||||
// if (!ok) {
|
||||
// mp_raise_OSError(MP_EIO);
|
||||
// }
|
||||
// return mp_const_none;
|
||||
// }
|
||||
// MP_DEFINE_CONST_FUN_OBJ_KW(rp2pio_statemachine_readinto_obj, 2, rp2pio_statemachine_readinto);
|
||||
uint8_t* original_pointer = bufinfo.buf;
|
||||
int stride_in_bytes = mp_binary_get_size('@', bufinfo.typecode, NULL);
|
||||
if (stride_in_bytes > 4) {
|
||||
mp_raise_ValueError(translate("Buffer elements must be 4 bytes long or less"));
|
||||
}
|
||||
|
||||
// //| def write_readinto(self, buffer_out: ReadableBuffer, buffer_in: WriteableBuffer, *, out_start: int = 0, out_end: Optional[int] = None, in_start: int = 0, in_end: Optional[int] = None) -> None:
|
||||
// //| """Write out the data in ``buffer_out`` while simultaneously reading data into ``buffer_in``.
|
||||
// //| The SPI object must be locked.
|
||||
// //| The lengths of the slices defined by ``buffer_out[out_start:out_end]`` and ``buffer_in[in_start:in_end]``
|
||||
// //| must be equal.
|
||||
// //| If buffer slice lengths are both 0, nothing happens.
|
||||
// //|
|
||||
// //| :param ~_typing.ReadableBuffer buffer_out: Write out the data in this buffer
|
||||
// //| :param ~_typing.WriteableBuffer buffer_in: Read data into this buffer
|
||||
// //| :param int out_start: Start of the slice of buffer_out to write out: ``buffer_out[out_start:out_end]``
|
||||
// //| :param int out_end: End of the slice; this index is not included. Defaults to ``len(buffer_out)``
|
||||
// //| :param int in_start: Start of the slice of ``buffer_in`` to read into: ``buffer_in[in_start:in_end]``
|
||||
// //| :param int in_end: End of the slice; this index is not included. Defaults to ``len(buffer_in)``"""
|
||||
// //| ...
|
||||
// //|
|
||||
bool ok = common_hal_rp2pio_statemachine_readinto(self, ((uint8_t*)bufinfo.buf) + start, length, stride_in_bytes);
|
||||
if (!ok) {
|
||||
mp_raise_OSError(MP_EIO);
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_KW(rp2pio_statemachine_readinto_obj, 2, rp2pio_statemachine_readinto);
|
||||
|
||||
// STATIC mp_obj_t rp2pio_statemachine_write_readinto(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
// enum { ARG_buffer_out, ARG_buffer_in, ARG_out_start, ARG_out_end, ARG_in_start, ARG_in_end };
|
||||
// static const mp_arg_t allowed_args[] = {
|
||||
// { MP_QSTR_buffer_out, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
||||
// { MP_QSTR_buffer_in, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
||||
// { MP_QSTR_out_start, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
// { MP_QSTR_out_end, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = INT_MAX} },
|
||||
// { MP_QSTR_in_start, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
// { MP_QSTR_in_end, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = INT_MAX} },
|
||||
// };
|
||||
// rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||
// check_for_deinit(self);
|
||||
// check_lock(self);
|
||||
// mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
// mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
//| def write_readinto(self, buffer_out: ReadableBuffer, buffer_in: WriteableBuffer, *, out_start: int = 0, out_end: Optional[int] = None, in_start: int = 0, in_end: Optional[int] = None) -> None:
|
||||
//| """Write out the data in ``buffer_out`` while simultaneously reading data into ``buffer_in``.
|
||||
//| The lengths of the slices defined by ``buffer_out[out_start:out_end]`` and ``buffer_in[in_start:in_end]``
|
||||
//| may be different. The function will return once both are filled.
|
||||
//| If buffer slice lengths are both 0, nothing happens.
|
||||
//|
|
||||
//| :param ~_typing.ReadableBuffer buffer_out: Write out the data in this buffer
|
||||
//| :param ~_typing.WriteableBuffer buffer_in: Read data into this buffer
|
||||
//| :param int out_start: Start of the slice of buffer_out to write out: ``buffer_out[out_start:out_end]``
|
||||
//| :param int out_end: End of the slice; this index is not included. Defaults to ``len(buffer_out)``
|
||||
//| :param int in_start: Start of the slice of ``buffer_in`` to read into: ``buffer_in[in_start:in_end]``
|
||||
//| :param int in_end: End of the slice; this index is not included. Defaults to ``len(buffer_in)``"""
|
||||
//| ...
|
||||
//|
|
||||
|
||||
// mp_buffer_info_t buf_out_info;
|
||||
// mp_get_buffer_raise(args[ARG_buffer_out].u_obj, &buf_out_info, MP_BUFFER_READ);
|
||||
// int32_t out_start = args[ARG_out_start].u_int;
|
||||
// size_t out_length = buf_out_info.len;
|
||||
// normalize_buffer_bounds(&out_start, args[ARG_out_end].u_int, &out_length);
|
||||
STATIC mp_obj_t rp2pio_statemachine_write_readinto(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
enum { ARG_buffer_out, ARG_buffer_in, ARG_out_start, ARG_out_end, ARG_in_start, ARG_in_end };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_buffer_out, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
||||
{ MP_QSTR_buffer_in, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
||||
{ MP_QSTR_out_start, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
{ MP_QSTR_out_end, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = INT_MAX} },
|
||||
{ MP_QSTR_in_start, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
||||
{ MP_QSTR_in_end, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = INT_MAX} },
|
||||
};
|
||||
rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||
check_for_deinit(self);
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
|
||||
// mp_buffer_info_t buf_in_info;
|
||||
// mp_get_buffer_raise(args[ARG_buffer_in].u_obj, &buf_in_info, MP_BUFFER_WRITE);
|
||||
// int32_t in_start = args[ARG_in_start].u_int;
|
||||
// size_t in_length = buf_in_info.len;
|
||||
// normalize_buffer_bounds(&in_start, args[ARG_in_end].u_int, &in_length);
|
||||
mp_buffer_info_t buf_out_info;
|
||||
mp_get_buffer_raise(args[ARG_buffer_out].u_obj, &buf_out_info, MP_BUFFER_READ);
|
||||
int32_t out_start = args[ARG_out_start].u_int;
|
||||
size_t out_length = buf_out_info.len;
|
||||
normalize_buffer_bounds(&out_start, args[ARG_out_end].u_int, &out_length);
|
||||
|
||||
// if (out_length != in_length) {
|
||||
// mp_raise_ValueError(translate("buffer slices must be of equal length"));
|
||||
// }
|
||||
mp_buffer_info_t buf_in_info;
|
||||
mp_get_buffer_raise(args[ARG_buffer_in].u_obj, &buf_in_info, MP_BUFFER_WRITE);
|
||||
int32_t in_start = args[ARG_in_start].u_int;
|
||||
size_t in_length = buf_in_info.len;
|
||||
normalize_buffer_bounds(&in_start, args[ARG_in_end].u_int, &in_length);
|
||||
|
||||
// if (out_length == 0) {
|
||||
// return mp_const_none;
|
||||
// }
|
||||
if (out_length == 0 && in_length == 0) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
// bool ok = common_hal_rp2pio_statemachine_transfer(self,
|
||||
// ((uint8_t*)buf_out_info.buf) + out_start,
|
||||
// ((uint8_t*)buf_in_info.buf) + in_start,
|
||||
// out_length);
|
||||
// if (!ok) {
|
||||
// mp_raise_OSError(MP_EIO);
|
||||
// }
|
||||
// return mp_const_none;
|
||||
// }
|
||||
// MP_DEFINE_CONST_FUN_OBJ_KW(rp2pio_statemachine_write_readinto_obj, 2, rp2pio_statemachine_write_readinto);
|
||||
int in_stride_in_bytes = mp_binary_get_size('@', buf_in_info.typecode, NULL);
|
||||
if (in_stride_in_bytes > 4) {
|
||||
mp_raise_ValueError(translate("In-buffer elements must be <= 4 bytes long"));
|
||||
}
|
||||
|
||||
int out_stride_in_bytes = mp_binary_get_size('@', buf_out_info.typecode, NULL);
|
||||
if (out_stride_in_bytes > 4) {
|
||||
mp_raise_ValueError(translate("Out-buffer elements must be <= 4 bytes long"));
|
||||
}
|
||||
|
||||
bool ok = common_hal_rp2pio_statemachine_write_readinto(self,
|
||||
((uint8_t*)buf_out_info.buf) + out_start,
|
||||
out_length,
|
||||
out_stride_in_bytes,
|
||||
((uint8_t*)buf_in_info.buf) + in_start,
|
||||
in_length,
|
||||
in_stride_in_bytes);
|
||||
if (!ok) {
|
||||
mp_raise_OSError(MP_EIO);
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_KW(rp2pio_statemachine_write_readinto_obj, 2, rp2pio_statemachine_write_readinto);
|
||||
|
||||
//| def clear_rxfifo(self) -> None:
|
||||
//| """Clears any unread bytes in the rxfifo."""
|
||||
//| ...
|
||||
//|
|
||||
STATIC mp_obj_t rp2pio_statemachine_obj_clear_rxfifo(mp_obj_t self_in) {
|
||||
rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
common_hal_rp2pio_statemachine_clear_rxfifo(self);
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(rp2pio_statemachine_clear_rxfifo_obj, rp2pio_statemachine_obj_clear_rxfifo);
|
||||
|
||||
//| frequency: int
|
||||
//| """The actual state machine frequency. This may not match the frequency requested
|
||||
@ -413,9 +513,37 @@ STATIC mp_obj_t rp2pio_statemachine_obj_get_frequency(mp_obj_t self_in) {
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(rp2pio_statemachine_get_frequency_obj, rp2pio_statemachine_obj_get_frequency);
|
||||
|
||||
STATIC mp_obj_t rp2pio_statemachine_obj_set_frequency(mp_obj_t self_in, mp_obj_t frequency) {
|
||||
rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
check_for_deinit(self);
|
||||
|
||||
common_hal_rp2pio_statemachine_set_frequency(self, mp_obj_get_int(frequency));
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(rp2pio_statemachine_set_frequency_obj, rp2pio_statemachine_obj_set_frequency);
|
||||
|
||||
const mp_obj_property_t rp2pio_statemachine_frequency_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&rp2pio_statemachine_get_frequency_obj,
|
||||
(mp_obj_t)&rp2pio_statemachine_set_frequency_obj,
|
||||
(mp_obj_t)&mp_const_none_obj},
|
||||
};
|
||||
|
||||
//| rxstall: bool
|
||||
//| """True when the state machine has stalled due to a full RX FIFO since the last
|
||||
//| `clear_rxfifo` call."""
|
||||
//|
|
||||
|
||||
STATIC mp_obj_t rp2pio_statemachine_obj_get_rxstall(mp_obj_t self_in) {
|
||||
rp2pio_statemachine_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
check_for_deinit(self);
|
||||
return MP_OBJ_NEW_SMALL_INT(common_hal_rp2pio_statemachine_get_rxstall(self));
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(rp2pio_statemachine_get_rxstall_obj, rp2pio_statemachine_obj_get_rxstall);
|
||||
|
||||
const mp_obj_property_t rp2pio_statemachine_rxstall_obj = {
|
||||
.base.type = &mp_type_property,
|
||||
.proxy = {(mp_obj_t)&rp2pio_statemachine_get_rxstall_obj,
|
||||
(mp_obj_t)&mp_const_none_obj,
|
||||
(mp_obj_t)&mp_const_none_obj},
|
||||
};
|
||||
@ -425,12 +553,17 @@ STATIC const mp_rom_map_elem_t rp2pio_statemachine_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&rp2pio_statemachine_obj___exit___obj) },
|
||||
|
||||
// { MP_ROM_QSTR(MP_QSTR_restart), MP_ROM_PTR(&rp2pio_statemachine_configure_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_stop), MP_ROM_PTR(&rp2pio_statemachine_stop_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_restart), MP_ROM_PTR(&rp2pio_statemachine_restart_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_run), MP_ROM_PTR(&rp2pio_statemachine_run_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_clear_rxfifo), MP_ROM_PTR(&rp2pio_statemachine_clear_rxfifo_obj) },
|
||||
|
||||
// { MP_ROM_QSTR(MP_QSTR_readinto), MP_ROM_PTR(&rp2pio_statemachine_readinto_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_readinto), MP_ROM_PTR(&rp2pio_statemachine_readinto_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&rp2pio_statemachine_write_obj) },
|
||||
// { MP_ROM_QSTR(MP_QSTR_write_readinto), MP_ROM_PTR(&rp2pio_statemachine_write_readinto_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_frequency), MP_ROM_PTR(&rp2pio_statemachine_frequency_obj) }
|
||||
{ MP_ROM_QSTR(MP_QSTR_write_readinto), MP_ROM_PTR(&rp2pio_statemachine_write_readinto_obj) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_frequency), MP_ROM_PTR(&rp2pio_statemachine_frequency_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_rxstall), MP_ROM_PTR(&rp2pio_statemachine_rxstall_obj) }
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(rp2pio_statemachine_locals_dict, rp2pio_statemachine_locals_dict_table);
|
||||
|
||||
|
@ -36,36 +36,38 @@
|
||||
extern const mp_obj_type_t rp2pio_statemachine_type;
|
||||
|
||||
// Construct an underlying SPI object.
|
||||
extern void common_hal_rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
void common_hal_rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
const uint16_t* program, size_t program_len,
|
||||
size_t frequency,
|
||||
const uint16_t* init, size_t init_len,
|
||||
const mcu_pin_obj_t * first_out_pin, uint8_t out_pin_count,
|
||||
const mcu_pin_obj_t * first_out_pin, uint8_t out_pin_count, uint32_t initial_out_pin_state, uint32_t initial_out_pin_direction,
|
||||
const mcu_pin_obj_t * first_in_pin, uint8_t in_pin_count,
|
||||
const mcu_pin_obj_t * first_set_pin, uint8_t set_pin_count,
|
||||
const mcu_pin_obj_t * first_sideset_pin, uint8_t sideset_pin_count,
|
||||
const mcu_pin_obj_t * first_set_pin, uint8_t set_pin_count, uint32_t initial_set_pin_state, uint32_t initial_set_pin_direction,
|
||||
const mcu_pin_obj_t * first_sideset_pin, uint8_t sideset_pin_count, uint32_t initial_sideset_pin_state, uint32_t initial_sideset_pin_direction,
|
||||
bool exclusive_pin_use,
|
||||
bool auto_pull, uint8_t pull_threshold, bool out_shift_right,
|
||||
bool wait_for_txstall,
|
||||
bool auto_push, uint8_t push_threshold, bool in_shift_right);
|
||||
|
||||
extern void common_hal_rp2pio_statemachine_deinit(rp2pio_statemachine_obj_t *self);
|
||||
extern bool common_hal_rp2pio_statemachine_deinited(rp2pio_statemachine_obj_t *self);
|
||||
void common_hal_rp2pio_statemachine_deinit(rp2pio_statemachine_obj_t *self);
|
||||
bool common_hal_rp2pio_statemachine_deinited(rp2pio_statemachine_obj_t *self);
|
||||
|
||||
void common_hal_rp2pio_statemachine_restart(rp2pio_statemachine_obj_t *self);
|
||||
void common_hal_rp2pio_statemachine_stop(rp2pio_statemachine_obj_t *self);
|
||||
void common_hal_rp2pio_statemachine_run(rp2pio_statemachine_obj_t *self, const uint16_t *instructions, size_t len);
|
||||
|
||||
// Writes out the given data.
|
||||
extern bool common_hal_rp2pio_statemachine_write(rp2pio_statemachine_obj_t *self, const uint8_t *data, size_t len);
|
||||
bool common_hal_rp2pio_statemachine_write(rp2pio_statemachine_obj_t *self, const uint8_t *data, size_t len, uint8_t stride_in_bytes);
|
||||
bool common_hal_rp2pio_statemachine_readinto(rp2pio_statemachine_obj_t *self, uint8_t *data, size_t len, uint8_t stride_in_bytes);
|
||||
bool common_hal_rp2pio_statemachine_write_readinto(rp2pio_statemachine_obj_t *self,
|
||||
const uint8_t *data_out, size_t out_len, uint8_t out_stride_in_bytes,
|
||||
uint8_t *data_in, size_t in_len, uint8_t in_stride_in_bytes);
|
||||
|
||||
// // Reads in len bytes while outputting zeroes.
|
||||
// extern bool common_hal_rp2pio_statemachine_read(rp2pio_statemachine_obj_t *self, uint8_t *data, size_t len, uint8_t write_value);
|
||||
|
||||
// // Reads and write len bytes simultaneously.
|
||||
// extern bool common_hal_rp2pio_statemachine_transfer(rp2pio_statemachine_obj_t *self,
|
||||
// const uint8_t *data_out, size_t out_len,
|
||||
// uint8_t *data_in, size_t in_len);
|
||||
|
||||
// Return actual SPI bus frequency.
|
||||
// Return actual state machine frequency.
|
||||
uint32_t common_hal_rp2pio_statemachine_get_frequency(rp2pio_statemachine_obj_t* self);
|
||||
void common_hal_rp2pio_statemachine_set_frequency(rp2pio_statemachine_obj_t* self, uint32_t frequency);
|
||||
|
||||
// This is used by the supervisor to claim SPI devices indefinitely.
|
||||
// extern void common_hal_rp2pio_statemachine_never_reset(rp2pio_statemachine_obj_t *self);
|
||||
bool common_hal_rp2pio_statemachine_get_rxstall(rp2pio_statemachine_obj_t* self);
|
||||
void common_hal_rp2pio_statemachine_clear_rxfifo(rp2pio_statemachine_obj_t *self);
|
||||
|
||||
#endif // MICROPY_INCLUDED_RASPBERRYPI_BINDINGS_RP2PIO_STATEMACHINE_H
|
||||
|
@ -30,10 +30,6 @@
|
||||
#include "src/rp2_common/hardware_gpio/include/hardware/gpio.h"
|
||||
|
||||
void board_init(void) {
|
||||
common_hal_never_reset_pin(&pin_GPIO17);
|
||||
gpio_init(17);
|
||||
gpio_set_dir(17, GPIO_OUT);
|
||||
gpio_put(17, true);
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
|
@ -13,5 +13,5 @@
|
||||
// #define DEFAULT_UART_BUS_RX (&pin_PA11)
|
||||
// #define DEFAULT_UART_BUS_TX (&pin_PA10)
|
||||
|
||||
// Flash chip is GD25Q32 connected over QSPI
|
||||
#define TOTAL_FLASH_SIZE (4 * 1024 * 1024)
|
||||
// Flash chip is GD25Q64 connected over QSPI
|
||||
#define TOTAL_FLASH_SIZE (8 * 1024 * 1024)
|
||||
|
@ -14,12 +14,12 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO6) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO3) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO7) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO8) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO11) },
|
||||
@ -27,7 +27,6 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_GPIO17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
|
@ -13,5 +13,5 @@
|
||||
// #define DEFAULT_UART_BUS_RX (&pin_PA11)
|
||||
// #define DEFAULT_UART_BUS_TX (&pin_PA10)
|
||||
|
||||
// Flash chip is GD25Q32 connected over QSPI
|
||||
#define TOTAL_FLASH_SIZE (4 * 1024 * 1024)
|
||||
// Flash chip is GD25Q64 connected over QSPI
|
||||
#define TOTAL_FLASH_SIZE (8 * 1024 * 1024)
|
||||
|
@ -9,3 +9,5 @@ CHIP_FAMILY = rp2
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
||||
|
||||
CIRCUITPY__EVE = 1
|
||||
|
||||
BOOT2_S_UPPER = sdk/src/rp2_common/boot_stage2/boot2_w25q080.S
|
||||
|
@ -1,23 +0,0 @@
|
||||
// Padded and checksummed version of: /home/pi/pico/pico-examples/build/pico-sdk/src/rp2_common/boot_stage2/bs2_default.bin
|
||||
|
||||
.cpu cortex-m0plus
|
||||
.thumb
|
||||
|
||||
.section .boot2, "ax"
|
||||
|
||||
.byte 0x00, 0xb5, 0x32, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60
|
||||
.byte 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2e, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x02, 0x21, 0x59, 0x61
|
||||
.byte 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x2b, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20
|
||||
.byte 0x00, 0xf0, 0x44, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x14, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0
|
||||
.byte 0x34, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20, 0x18, 0x66, 0x1a, 0x66, 0x00, 0xf0
|
||||
.byte 0x2c, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x2f, 0xf8, 0x01, 0x21
|
||||
.byte 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1b, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60
|
||||
.byte 0x1a, 0x49, 0x1b, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0xa0, 0x21
|
||||
.byte 0x19, 0x66, 0x00, 0xf0, 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x16, 0x49, 0x14, 0x48, 0x01, 0x60
|
||||
.byte 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x12, 0x48, 0x13, 0x49
|
||||
.byte 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a, 0x04, 0x20
|
||||
.byte 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5, 0x18, 0x66
|
||||
.byte 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00, 0x02, 0x40
|
||||
.byte 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00
|
||||
.byte 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xb2, 0x4e, 0x7a
|
224
ports/raspberrypi/common-hal/audiobusio/I2SOut.c
Normal file
224
ports/raspberrypi/common-hal/audiobusio/I2SOut.c
Normal file
@ -0,0 +1,224 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2021 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 <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "mpconfigport.h"
|
||||
|
||||
#include "py/gc.h"
|
||||
#include "py/mperrno.h"
|
||||
#include "py/runtime.h"
|
||||
#include "common-hal/audiobusio/I2SOut.h"
|
||||
#include "shared-bindings/audiobusio/I2SOut.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "shared-module/audiocore/__init__.h"
|
||||
#include "bindings/rp2pio/StateMachine.h"
|
||||
#include "supervisor/shared/translate.h"
|
||||
|
||||
const uint16_t i2s_program[] = {
|
||||
// ; Load the next set of samples
|
||||
// ; /--- LRCLK
|
||||
// ; |/-- BCLK
|
||||
// ; ||
|
||||
// pull noblock side 0b01 ; Loads OSR with the next FIFO value or X
|
||||
0x8880,
|
||||
// mov x osr side 0b01 ; Save the new value in case we need it again
|
||||
0xa827,
|
||||
// set y 14 side 0b01
|
||||
0xe84e,
|
||||
// bitloop1:
|
||||
// out pins 1 side 0b00 [2]
|
||||
0x6201,
|
||||
// jmp y-- bitloop1 side 0b01 [2]
|
||||
0x0a83,
|
||||
// out pins 1 side 0b10 [2]
|
||||
0x7201,
|
||||
// set y 14 side 0b11 [2]
|
||||
0xfa4e,
|
||||
// bitloop0:
|
||||
// out pins 1 side 0b10 [2]
|
||||
0x7201,
|
||||
// jmp y-- bitloop0 side 0b11 [2]
|
||||
0x1a87,
|
||||
// out pins 1 side 0b00 [2]
|
||||
0x6201
|
||||
};
|
||||
|
||||
const uint16_t i2s_program_left_justified[] = {
|
||||
// ; Load the next set of samples
|
||||
// ; /--- LRCLK
|
||||
// ; |/-- BCLK
|
||||
// ; ||
|
||||
// pull noblock side 0b11 ; Loads OSR with the next FIFO value or X
|
||||
0x9880,
|
||||
// mov x osr side 0b11 ; Save the new value in case we need it again
|
||||
0xb827,
|
||||
// set y 14 side 0b11
|
||||
0xf84e,
|
||||
// bitloop1:
|
||||
// out pins 1 side 0b00 [2]
|
||||
0x6201,
|
||||
// jmp y-- bitloop1 side 0b01 [2]
|
||||
0x0a83,
|
||||
// out pins 1 side 0b10 [2]
|
||||
0x6201,
|
||||
// set y 14 side 0b01 [2]
|
||||
0xea4e,
|
||||
// bitloop0:
|
||||
// out pins 1 side 0b10 [2]
|
||||
0x7201,
|
||||
// jmp y-- bitloop0 side 0b11 [2]
|
||||
0x1a87,
|
||||
// out pins 1 side 0b10 [2]
|
||||
0x7201
|
||||
};
|
||||
|
||||
void i2sout_reset(void) {
|
||||
}
|
||||
|
||||
// Caller validates that pins are free.
|
||||
void common_hal_audiobusio_i2sout_construct(audiobusio_i2sout_obj_t* self,
|
||||
const mcu_pin_obj_t* bit_clock, const mcu_pin_obj_t* word_select,
|
||||
const mcu_pin_obj_t* data, bool left_justified) {
|
||||
if (bit_clock->number != word_select->number - 1) {
|
||||
mp_raise_ValueError(translate("Bit clock and word select must be sequential pins"));
|
||||
}
|
||||
|
||||
const uint16_t* program = i2s_program;
|
||||
size_t program_len = sizeof(i2s_program) / sizeof(i2s_program[0]);
|
||||
if (left_justified) {
|
||||
program = i2s_program_left_justified;
|
||||
program_len = sizeof(i2s_program_left_justified) / sizeof(i2s_program_left_justified[0]);;
|
||||
}
|
||||
|
||||
// Use the state machine to manage pins.
|
||||
common_hal_rp2pio_statemachine_construct(&self->state_machine,
|
||||
program, program_len,
|
||||
44100 * 32 * 6, // Clock at 44.1 khz to warm the DAC up.
|
||||
NULL, 0,
|
||||
data, 1, 0, 0xffffffff, // out pin
|
||||
NULL, 0, // in pins
|
||||
NULL, 0, 0, 0x1f, // set pins
|
||||
bit_clock, 2, 0, 0x1f, // sideset pins
|
||||
true, // exclusive pin use
|
||||
false, 32, false, // shift out left to start with MSB
|
||||
false, // Wait for txstall
|
||||
false, 32, false); // in settings
|
||||
|
||||
self->playing = false;
|
||||
audio_dma_init(&self->dma);
|
||||
}
|
||||
|
||||
bool common_hal_audiobusio_i2sout_deinited(audiobusio_i2sout_obj_t* self) {
|
||||
return common_hal_rp2pio_statemachine_deinited(&self->state_machine);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_deinit(audiobusio_i2sout_obj_t* self) {
|
||||
if (common_hal_audiobusio_i2sout_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
|
||||
common_hal_rp2pio_statemachine_deinit(&self->state_machine);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t* self,
|
||||
mp_obj_t sample, bool loop) {
|
||||
if (common_hal_audiobusio_i2sout_get_playing(self)) {
|
||||
common_hal_audiobusio_i2sout_stop(self);
|
||||
}
|
||||
uint8_t bits_per_sample = audiosample_bits_per_sample(sample);
|
||||
// Make sure we transmit a minimum of 16 bits.
|
||||
// TODO: Maybe we need an intermediate object to upsample instead. This is
|
||||
// only needed for some I2S devices that expect at least 8.
|
||||
if (bits_per_sample < 16) {
|
||||
bits_per_sample = 16;
|
||||
}
|
||||
// We always output stereo so output twice as many bits.
|
||||
uint16_t bits_per_sample_output = bits_per_sample * 2;
|
||||
size_t clocks_per_bit = 6;
|
||||
uint32_t frequency = bits_per_sample_output * audiosample_sample_rate(sample);
|
||||
common_hal_rp2pio_statemachine_set_frequency(&self->state_machine, clocks_per_bit * frequency);
|
||||
common_hal_rp2pio_statemachine_restart(&self->state_machine);
|
||||
|
||||
uint8_t channel_count = audiosample_channel_count(sample);
|
||||
if (channel_count > 2) {
|
||||
mp_raise_ValueError(translate("Too many channels in sample."));
|
||||
}
|
||||
|
||||
audio_dma_result result = audio_dma_setup_playback(
|
||||
&self->dma,
|
||||
sample,
|
||||
loop,
|
||||
false, // single channel
|
||||
0, // audio channel
|
||||
true, // output signed
|
||||
bits_per_sample,
|
||||
(uint32_t) &self->state_machine.pio->txf[self->state_machine.state_machine], // output register
|
||||
self->state_machine.tx_dreq); // data request line
|
||||
|
||||
if (result == AUDIO_DMA_DMA_BUSY) {
|
||||
common_hal_audiobusio_i2sout_stop(self);
|
||||
mp_raise_RuntimeError(translate("No DMA channel found"));
|
||||
} else if (result == AUDIO_DMA_MEMORY_ERROR) {
|
||||
common_hal_audiobusio_i2sout_stop(self);
|
||||
mp_raise_RuntimeError(translate("Unable to allocate buffers for signed conversion"));
|
||||
}
|
||||
|
||||
// Turn on the state machine's clock.
|
||||
|
||||
self->playing = true;
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_pause(audiobusio_i2sout_obj_t* self) {
|
||||
audio_dma_pause(&self->dma);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_resume(audiobusio_i2sout_obj_t* self) {
|
||||
// Maybe: Clear any overrun/underrun errors
|
||||
|
||||
audio_dma_resume(&self->dma);
|
||||
}
|
||||
|
||||
bool common_hal_audiobusio_i2sout_get_paused(audiobusio_i2sout_obj_t* self) {
|
||||
return audio_dma_get_paused(&self->dma);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_stop(audiobusio_i2sout_obj_t* self) {
|
||||
audio_dma_stop(&self->dma);
|
||||
|
||||
common_hal_rp2pio_statemachine_stop(&self->state_machine);
|
||||
|
||||
self->playing = false;
|
||||
}
|
||||
|
||||
bool common_hal_audiobusio_i2sout_get_playing(audiobusio_i2sout_obj_t* self) {
|
||||
bool playing = audio_dma_get_playing(&self->dma);
|
||||
if (!playing && self->playing) {
|
||||
common_hal_audiobusio_i2sout_stop(self);
|
||||
}
|
||||
return playing;
|
||||
}
|
47
ports/raspberrypi/common-hal/audiobusio/I2SOut.h
Normal file
47
ports/raspberrypi/common-hal/audiobusio/I2SOut.h
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2021 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_RASPBERRYPI_COMMON_HAL_AUDIOBUSIO_I2SOUT_H
|
||||
#define MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_AUDIOBUSIO_I2SOUT_H
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
#include "common-hal/rp2pio/StateMachine.h"
|
||||
|
||||
#include "audio_dma.h"
|
||||
#include "py/obj.h"
|
||||
|
||||
// We don't bit pack because we'll only have two at most. Its better to save code size instead.
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
bool left_justified;
|
||||
rp2pio_statemachine_obj_t state_machine;
|
||||
bool playing;
|
||||
audio_dma_t dma;
|
||||
} audiobusio_i2sout_obj_t;
|
||||
|
||||
void i2sout_reset(void);
|
||||
|
||||
#endif // MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_AUDIOBUSIO_I2SOUT_H
|
172
ports/raspberrypi/common-hal/audiobusio/PDMIn.c
Normal file
172
ports/raspberrypi/common-hal/audiobusio/PDMIn.c
Normal file
@ -0,0 +1,172 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2021 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 <stdint.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "py/mperrno.h"
|
||||
#include "py/runtime.h"
|
||||
#include "shared-bindings/audiobusio/PDMIn.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate.h"
|
||||
|
||||
#include "audio_dma.h"
|
||||
|
||||
#define OVERSAMPLING 64
|
||||
#define SAMPLES_PER_BUFFER 32
|
||||
|
||||
// MEMS microphones must be clocked at at least 1MHz.
|
||||
#define MIN_MIC_CLOCK 1000000
|
||||
|
||||
const uint16_t pdmin[] = {
|
||||
// in pins 1 side 0b1
|
||||
0x5001,
|
||||
// push iffull side 0b0
|
||||
0x8040
|
||||
};
|
||||
|
||||
// Caller validates that pins are free.
|
||||
void common_hal_audiobusio_pdmin_construct(audiobusio_pdmin_obj_t* self,
|
||||
const mcu_pin_obj_t* clock_pin,
|
||||
const mcu_pin_obj_t* data_pin,
|
||||
uint32_t sample_rate,
|
||||
uint8_t bit_depth,
|
||||
bool mono,
|
||||
uint8_t oversample) {
|
||||
if (!(bit_depth == 16 || bit_depth == 8) || !mono || oversample != OVERSAMPLING) {
|
||||
mp_raise_NotImplementedError(translate("Only 8 or 16 bit mono with " MP_STRINGIFY(OVERSAMPLING) "x oversampling is supported."));
|
||||
}
|
||||
|
||||
// Use the state machine to manage pins.
|
||||
common_hal_rp2pio_statemachine_construct(&self->state_machine,
|
||||
pdmin, sizeof(pdmin) / sizeof(pdmin[0]),
|
||||
44100 * 32 * 2, // Clock at 44.1 khz to warm the DAC up.
|
||||
NULL, 0,
|
||||
NULL, 1, 0, 0xffffffff, // out pin
|
||||
data_pin, 1, // in pins
|
||||
NULL, 0, 0, 0x1f, // set pins
|
||||
clock_pin, 1, 0, 0x1f, // sideset pins
|
||||
true, // exclusive pin use
|
||||
false, 32, false, // out settings
|
||||
false, // Wait for txstall
|
||||
false, 32, true); // in settings
|
||||
|
||||
uint32_t actual_frequency = common_hal_rp2pio_statemachine_get_frequency(&self->state_machine);
|
||||
if (actual_frequency < MIN_MIC_CLOCK) {
|
||||
mp_raise_ValueError(translate("sampling rate out of range"));
|
||||
}
|
||||
|
||||
self->sample_rate = actual_frequency / oversample;
|
||||
self->bit_depth = bit_depth;
|
||||
}
|
||||
|
||||
bool common_hal_audiobusio_pdmin_deinited(audiobusio_pdmin_obj_t* self) {
|
||||
return common_hal_rp2pio_statemachine_deinited(&self->state_machine);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_pdmin_deinit(audiobusio_pdmin_obj_t* self) {
|
||||
if (common_hal_audiobusio_pdmin_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t common_hal_audiobusio_pdmin_get_bit_depth(audiobusio_pdmin_obj_t* self) {
|
||||
return self->bit_depth;
|
||||
}
|
||||
|
||||
uint32_t common_hal_audiobusio_pdmin_get_sample_rate(audiobusio_pdmin_obj_t* self) {
|
||||
return self->sample_rate;
|
||||
}
|
||||
|
||||
// a windowed sinc filter for 44 khz, 64 samples
|
||||
//
|
||||
// This filter is good enough to use for lower sample rates as
|
||||
// well. It does not increase the noise enough to be a problem.
|
||||
//
|
||||
// In the long run we could use a fast filter like this to do the
|
||||
// decimation and initial filtering in real time, filtering to a
|
||||
// higher sample rate than specified. Then after the audio is
|
||||
// recorded, a more expensive filter non-real-time filter could be
|
||||
// used to down-sample and low-pass.
|
||||
const uint16_t sinc_filter [OVERSAMPLING] = {
|
||||
0, 2, 9, 21, 39, 63, 94, 132,
|
||||
179, 236, 302, 379, 467, 565, 674, 792,
|
||||
920, 1055, 1196, 1341, 1487, 1633, 1776, 1913,
|
||||
2042, 2159, 2263, 2352, 2422, 2474, 2506, 2516,
|
||||
2506, 2474, 2422, 2352, 2263, 2159, 2042, 1913,
|
||||
1776, 1633, 1487, 1341, 1196, 1055, 920, 792,
|
||||
674, 565, 467, 379, 302, 236, 179, 132,
|
||||
94, 63, 39, 21, 9, 2, 0, 0
|
||||
};
|
||||
|
||||
#define REPEAT_32_TIMES(X) do { X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X } while(0)
|
||||
|
||||
static uint16_t filter_sample(uint32_t pdm_samples[2]) {
|
||||
uint16_t running_sum = 0;
|
||||
const uint16_t *filter_ptr = sinc_filter;
|
||||
for (uint8_t i = 0; i < 2; i++) {
|
||||
uint32_t pdm_sample = pdm_samples[i];
|
||||
REPEAT_32_TIMES( {
|
||||
if (pdm_sample & 0x1) {
|
||||
running_sum += *filter_ptr;
|
||||
}
|
||||
filter_ptr++;
|
||||
pdm_sample >>= 1;
|
||||
}
|
||||
);
|
||||
}
|
||||
return running_sum;
|
||||
}
|
||||
|
||||
// output_buffer may be a byte buffer or a halfword buffer.
|
||||
// output_buffer_length is the number of slots, not the number of bytes.
|
||||
uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t* self,
|
||||
uint16_t* output_buffer, uint32_t output_buffer_length) {
|
||||
uint32_t samples[2];
|
||||
size_t output_count = 0;
|
||||
common_hal_rp2pio_statemachine_clear_rxfifo(&self->state_machine);
|
||||
// Do one read to get the mic going and throw it away.
|
||||
common_hal_rp2pio_statemachine_readinto(&self->state_machine, (uint8_t*) samples, 2 * sizeof(uint32_t), sizeof(uint32_t));
|
||||
while (output_count < output_buffer_length && !common_hal_rp2pio_statemachine_get_rxstall(&self->state_machine)) {
|
||||
common_hal_rp2pio_statemachine_readinto(&self->state_machine, (uint8_t*) samples, 2 * sizeof(uint32_t), sizeof(uint32_t));
|
||||
// Call filter_sample just one place so it can be inlined.
|
||||
uint16_t value = filter_sample(samples);
|
||||
if (self->bit_depth == 8) {
|
||||
// Truncate to 8 bits.
|
||||
((uint8_t*) output_buffer)[output_count] = value >> 8;
|
||||
} else {
|
||||
output_buffer[output_count] = value;
|
||||
}
|
||||
output_count++;
|
||||
}
|
||||
|
||||
return output_count;
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_pdmin_record_to_file(audiobusio_pdmin_obj_t* self, uint8_t* buffer, uint32_t length) {
|
||||
|
||||
}
|
50
ports/raspberrypi/common-hal/audiobusio/PDMIn.h
Normal file
50
ports/raspberrypi/common-hal/audiobusio/PDMIn.h
Normal file
@ -0,0 +1,50 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2021 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_RASPBERRYPI_COMMON_HAL_AUDIOBUSIO_AUDIOOUT_H
|
||||
#define MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_AUDIOBUSIO_AUDIOOUT_H
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
#include "bindings/rp2pio/StateMachine.h"
|
||||
|
||||
#include "extmod/vfs_fat.h"
|
||||
#include "py/obj.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
uint32_t sample_rate;
|
||||
uint8_t serializer;
|
||||
uint8_t clock_unit;
|
||||
uint8_t bytes_per_sample;
|
||||
uint8_t bit_depth;
|
||||
rp2pio_statemachine_obj_t state_machine;
|
||||
} audiobusio_pdmin_obj_t;
|
||||
|
||||
void pdmin_reset(void);
|
||||
|
||||
void pdmin_background(void);
|
||||
|
||||
#endif // MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_AUDIOBUSIO_AUDIOOUT_H
|
1
ports/raspberrypi/common-hal/audiobusio/__init__.c
Normal file
1
ports/raspberrypi/common-hal/audiobusio/__init__.c
Normal file
@ -0,0 +1 @@
|
||||
// No audiobusio module functions.
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
* Copyright (c) 2021 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@ -24,29 +24,78 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
#include "shared-bindings/busio/UART.h"
|
||||
|
||||
#include "mpconfigport.h"
|
||||
#include "lib/utils/interrupt_char.h"
|
||||
#include "py/gc.h"
|
||||
#include "py/stream.h"
|
||||
#include "py/mperrno.h"
|
||||
#include "py/runtime.h"
|
||||
#include "py/stream.h"
|
||||
#include "supervisor/shared/translate.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "lib/utils/interrupt_char.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#define UART_DEBUG(...) (void)0
|
||||
// #define UART_DEBUG(...) mp_printf(&mp_plat_print __VA_OPT__(,) __VA_ARGS__)
|
||||
|
||||
// Do-nothing callback needed so that usart_async code will enable rx interrupts.
|
||||
// See comment below re usart_async_register_callback()
|
||||
// static void usart_async_rxc_callback(const struct usart_async_descriptor *const descr) {
|
||||
// // Nothing needs to be done by us.
|
||||
// }
|
||||
#include "src/rp2_common/hardware_irq/include/hardware/irq.h"
|
||||
#include "src/rp2_common/hardware_gpio/include/hardware/gpio.h"
|
||||
|
||||
#define NO_PIN 0xff
|
||||
|
||||
#define UART_INST(uart) (((uart) ? uart1 : uart0))
|
||||
|
||||
typedef enum {
|
||||
STATUS_FREE = 0,
|
||||
STATUS_BUSY,
|
||||
STATUS_NEVER_RESET
|
||||
} uart_status_t;
|
||||
|
||||
static uart_status_t uart_status[NUM_UARTS];
|
||||
|
||||
void reset_uart(void) {
|
||||
for (uint8_t num = 0; num < NUM_UARTS; num++) {
|
||||
if (uart_status[num] == STATUS_BUSY) {
|
||||
uart_status[num] = STATUS_FREE;
|
||||
uart_deinit(UART_INST(num));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void never_reset_uart(uint8_t num) {
|
||||
uart_status[num] = STATUS_NEVER_RESET;
|
||||
}
|
||||
|
||||
static uint8_t pin_init(const uint8_t uart, const mcu_pin_obj_t * pin, const uint8_t pin_type) {
|
||||
if (pin == NULL) {
|
||||
return NO_PIN;
|
||||
}
|
||||
if (!(((pin->number % 4) == pin_type) && ((((pin->number + 4) / 8) % NUM_UARTS) == uart))) {
|
||||
mp_raise_ValueError(translate("Invalid pins"));
|
||||
}
|
||||
claim_pin(pin);
|
||||
gpio_set_function(pin->number, GPIO_FUNC_UART);
|
||||
return pin->number;
|
||||
}
|
||||
|
||||
static busio_uart_obj_t* active_uarts[NUM_UARTS];
|
||||
|
||||
static void _copy_into_ringbuf(ringbuf_t* r, uart_inst_t* uart) {
|
||||
while (uart_is_readable(uart) && ringbuf_num_empty(r) > 0) {
|
||||
ringbuf_put(r, (uint8_t) uart_get_hw(uart)->dr);
|
||||
}
|
||||
}
|
||||
|
||||
static void shared_callback(busio_uart_obj_t *self) {
|
||||
_copy_into_ringbuf(&self->ringbuf, self->uart);
|
||||
// We always clear the interrupt so it doesn't continue to fire because we
|
||||
// may not have read everything available.
|
||||
uart_get_hw(self->uart)->icr = UART_UARTICR_RXIC_BITS;
|
||||
}
|
||||
|
||||
static void uart0_callback(void) {
|
||||
shared_callback(active_uarts[0]);
|
||||
}
|
||||
|
||||
static void uart1_callback(void) {
|
||||
shared_callback(active_uarts[1]);
|
||||
}
|
||||
|
||||
void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
const mcu_pin_obj_t * tx, const mcu_pin_obj_t * rx,
|
||||
const mcu_pin_obj_t * rts, const mcu_pin_obj_t * cts,
|
||||
@ -54,265 +103,86 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
uint32_t baudrate, uint8_t bits, busio_uart_parity_t parity, uint8_t stop,
|
||||
mp_float_t timeout, uint16_t receiver_buffer_size, byte* receiver_buffer,
|
||||
bool sigint_enabled) {
|
||||
mp_raise_NotImplementedError(translate("UART not yet supported"));
|
||||
|
||||
// Sercom* sercom = NULL;
|
||||
// uint8_t sercom_index = 255; // Unset index
|
||||
// uint32_t rx_pinmux = 0;
|
||||
// uint8_t rx_pad = 255; // Unset pad
|
||||
// uint32_t tx_pinmux = 0;
|
||||
// uint8_t tx_pad = 255; // Unset pad
|
||||
if (bits > 8) {
|
||||
mp_raise_ValueError(translate("Invalid word/bit length"));
|
||||
}
|
||||
|
||||
// if ((rts != NULL) || (cts != NULL) || (rs485_dir != NULL) || (rs485_invert)) {
|
||||
// mp_raise_ValueError(translate("RTS/CTS/RS485 Not yet supported on this device"));
|
||||
// }
|
||||
if (receiver_buffer_size == 0) {
|
||||
mp_raise_ValueError(translate("Invalid buffer size"));
|
||||
}
|
||||
|
||||
// if (bits > 8) {
|
||||
// mp_raise_NotImplementedError(translate("bytes > 8 bits not supported"));
|
||||
// }
|
||||
if ((rs485_dir != NULL) || (rs485_invert)) {
|
||||
mp_raise_NotImplementedError(translate("RS485 Not yet supported on this device"));
|
||||
}
|
||||
|
||||
// bool have_tx = tx != NULL;
|
||||
// bool have_rx = rx != NULL;
|
||||
// if (!have_tx && !have_rx) {
|
||||
// mp_raise_ValueError(translate("tx and rx cannot both be None"));
|
||||
// }
|
||||
uint8_t uart_id = ((((tx != NULL) ? tx->number : rx->number) + 4) / 8) % NUM_UARTS;
|
||||
|
||||
// self->baudrate = baudrate;
|
||||
// self->character_bits = bits;
|
||||
// self->timeout_ms = timeout * 1000;
|
||||
if (uart_status[uart_id] != STATUS_FREE) {
|
||||
mp_raise_RuntimeError(translate("All UART peripherals are in use"));
|
||||
} else {
|
||||
uart_status[uart_id] = STATUS_BUSY;
|
||||
}
|
||||
|
||||
// // This assignment is only here because the usart_async routines take a *const argument.
|
||||
// struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
self->tx_pin = pin_init(uart_id, tx, 0);
|
||||
self->rx_pin = pin_init(uart_id, rx, 1);
|
||||
self->cts_pin = pin_init(uart_id, cts, 2);
|
||||
self->rts_pin = pin_init(uart_id, rts, 3);
|
||||
|
||||
// for (int i = 0; i < NUM_SERCOMS_PER_PIN; i++) {
|
||||
// Sercom* potential_sercom = NULL;
|
||||
// if (have_tx) {
|
||||
// sercom_index = tx->sercom[i].index;
|
||||
// if (sercom_index >= SERCOM_INST_NUM) {
|
||||
// continue;
|
||||
// }
|
||||
// potential_sercom = sercom_insts[sercom_index];
|
||||
// #ifdef SAMD21
|
||||
// if (potential_sercom->USART.CTRLA.bit.ENABLE != 0 ||
|
||||
// !(tx->sercom[i].pad == 0 ||
|
||||
// tx->sercom[i].pad == 2)) {
|
||||
// continue;
|
||||
// }
|
||||
// #endif
|
||||
// #ifdef SAM_D5X_E5X
|
||||
// if (potential_sercom->USART.CTRLA.bit.ENABLE != 0 ||
|
||||
// !(tx->sercom[i].pad == 0)) {
|
||||
// continue;
|
||||
// }
|
||||
// #endif
|
||||
// tx_pinmux = PINMUX(tx->number, (i == 0) ? MUX_C : MUX_D);
|
||||
// tx_pad = tx->sercom[i].pad;
|
||||
// if (rx == NULL) {
|
||||
// sercom = potential_sercom;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// for (int j = 0; j < NUM_SERCOMS_PER_PIN; j++) {
|
||||
// if (((!have_tx && rx->sercom[j].index < SERCOM_INST_NUM &&
|
||||
// sercom_insts[rx->sercom[j].index]->USART.CTRLA.bit.ENABLE == 0) ||
|
||||
// sercom_index == rx->sercom[j].index) &&
|
||||
// rx->sercom[j].pad != tx_pad) {
|
||||
// rx_pinmux = PINMUX(rx->number, (j == 0) ? MUX_C : MUX_D);
|
||||
// rx_pad = rx->sercom[j].pad;
|
||||
// sercom = sercom_insts[rx->sercom[j].index];
|
||||
// sercom_index = rx->sercom[j].index;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if (sercom != NULL) {
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if (sercom == NULL) {
|
||||
// mp_raise_ValueError(translate("Invalid pins"));
|
||||
// }
|
||||
// if (!have_tx) {
|
||||
// tx_pad = 0;
|
||||
// if (rx_pad == 0) {
|
||||
// tx_pad = 2;
|
||||
// }
|
||||
// }
|
||||
// if (!have_rx) {
|
||||
// rx_pad = (tx_pad + 1) % 4;
|
||||
// }
|
||||
self->uart = UART_INST(uart_id);
|
||||
self->uart_id = uart_id;
|
||||
self->baudrate = baudrate;
|
||||
self->timeout_ms = timeout * 1000;
|
||||
|
||||
// // Set up clocks on SERCOM.
|
||||
// samd_peripherals_sercom_clock_init(sercom, sercom_index);
|
||||
uart_init(self->uart, self->baudrate);
|
||||
uart_set_fifo_enabled(self->uart, true);
|
||||
uart_set_format(self->uart, bits, stop, parity);
|
||||
uart_set_hw_flow(self->uart, (cts != NULL), (rts != NULL));
|
||||
|
||||
// if (rx && receiver_buffer_size > 0) {
|
||||
// self->buffer_length = receiver_buffer_size;
|
||||
// // Initially allocate the UART's buffer in the long-lived part of the
|
||||
// // heap. UARTs are generally long-lived objects, but the "make long-
|
||||
// // lived" machinery is incapable of moving internal pointers like
|
||||
// // self->buffer, so do it manually. (However, as long as internal
|
||||
// // pointers like this are NOT moved, allocating the buffer
|
||||
// // in the long-lived pool is not strictly necessary)
|
||||
// self->buffer = (uint8_t *) gc_alloc(self->buffer_length * sizeof(uint8_t), false, true);
|
||||
// if (self->buffer == NULL) {
|
||||
// common_hal_busio_uart_deinit(self);
|
||||
// mp_raise_msg_varg(&mp_type_MemoryError, translate("Failed to allocate RX buffer of %d bytes"), self->buffer_length * sizeof(uint8_t));
|
||||
// }
|
||||
// } else {
|
||||
// self->buffer_length = 0;
|
||||
// self->buffer = NULL;
|
||||
// }
|
||||
|
||||
// if (usart_async_init(usart_desc_p, sercom, self->buffer, self->buffer_length, NULL) != ERR_NONE) {
|
||||
// mp_raise_ValueError(translate("Could not initialize UART"));
|
||||
// }
|
||||
|
||||
// // usart_async_init() sets a number of defaults based on a prototypical SERCOM
|
||||
// // which don't necessarily match what we need. After calling it, set the values
|
||||
// // specific to this instantiation of UART.
|
||||
|
||||
// // Set pads computed for this SERCOM.
|
||||
// // TXPO:
|
||||
// // 0x0: TX pad 0; no RTS/CTS
|
||||
// // 0x1: TX pad 2; no RTS/CTS
|
||||
// // 0x2: TX pad 0; RTS: pad 2, CTS: pad 3 (not used by us right now)
|
||||
// // So divide by 2 to map pad to value.
|
||||
// // RXPO:
|
||||
// // 0x0: RX pad 0
|
||||
// // 0x1: RX pad 1
|
||||
// // 0x2: RX pad 2
|
||||
// // 0x3: RX pad 3
|
||||
|
||||
// // Doing a group mask and set of the registers saves 60 bytes over setting the bitfields individually.
|
||||
|
||||
// sercom->USART.CTRLA.reg &= ~(SERCOM_USART_CTRLA_TXPO_Msk |
|
||||
// SERCOM_USART_CTRLA_RXPO_Msk |
|
||||
// SERCOM_USART_CTRLA_FORM_Msk);
|
||||
// sercom->USART.CTRLA.reg |= SERCOM_USART_CTRLA_TXPO(tx_pad / 2) |
|
||||
// SERCOM_USART_CTRLA_RXPO(rx_pad) |
|
||||
// (parity == BUSIO_UART_PARITY_NONE ? 0 : SERCOM_USART_CTRLA_FORM(1));
|
||||
|
||||
// // Enable tx and/or rx based on whether the pins were specified.
|
||||
// // CHSIZE is 0 for 8 bits, 5, 6, 7 for 5, 6, 7 bits. 1 for 9 bits, but we don't support that.
|
||||
// sercom->USART.CTRLB.reg &= ~(SERCOM_USART_CTRLB_TXEN |
|
||||
// SERCOM_USART_CTRLB_RXEN |
|
||||
// SERCOM_USART_CTRLB_PMODE |
|
||||
// SERCOM_USART_CTRLB_SBMODE |
|
||||
// SERCOM_USART_CTRLB_CHSIZE_Msk);
|
||||
// sercom->USART.CTRLB.reg |= (have_tx ? SERCOM_USART_CTRLB_TXEN : 0) |
|
||||
// (have_rx ? SERCOM_USART_CTRLB_RXEN : 0) |
|
||||
// (parity == BUSIO_UART_PARITY_ODD ? SERCOM_USART_CTRLB_PMODE : 0) |
|
||||
// (stop > 1 ? SERCOM_USART_CTRLB_SBMODE : 0) |
|
||||
// SERCOM_USART_CTRLB_CHSIZE(bits % 8);
|
||||
|
||||
// // Set baud rate
|
||||
// common_hal_busio_uart_set_baudrate(self, baudrate);
|
||||
|
||||
// // Turn on rx interrupt handling. The UART async driver has its own set of internal callbacks,
|
||||
// // which are set up by uart_async_init(). These in turn can call user-specified callbacks.
|
||||
// // In fact, the actual interrupts are not enabled unless we set up a user-specified callback.
|
||||
// // This is confusing. It's explained in the Atmel START User Guide -> Implementation Description ->
|
||||
// // Different read function behavior in some asynchronous drivers. As of this writing:
|
||||
// // http://start.atmel.com/static/help/index.html?GUID-79201A5A-226F-4FBB-B0B8-AB0BE0554836
|
||||
// // Look at the ASFv4 code example for async USART.
|
||||
// usart_async_register_callback(usart_desc_p, USART_ASYNC_RXC_CB, usart_async_rxc_callback);
|
||||
|
||||
|
||||
// if (have_tx) {
|
||||
// gpio_set_pin_direction(tx->number, GPIO_DIRECTION_OUT);
|
||||
// gpio_set_pin_pull_mode(tx->number, GPIO_PULL_OFF);
|
||||
// gpio_set_pin_function(tx->number, tx_pinmux);
|
||||
// self->tx_pin = tx->number;
|
||||
// claim_pin(tx);
|
||||
// } else {
|
||||
// self->tx_pin = NO_PIN;
|
||||
// }
|
||||
|
||||
// if (have_rx) {
|
||||
// gpio_set_pin_direction(rx->number, GPIO_DIRECTION_IN);
|
||||
// gpio_set_pin_pull_mode(rx->number, GPIO_PULL_OFF);
|
||||
// gpio_set_pin_function(rx->number, rx_pinmux);
|
||||
// self->rx_pin = rx->number;
|
||||
// claim_pin(rx);
|
||||
// } else {
|
||||
// self->rx_pin = NO_PIN;
|
||||
// }
|
||||
|
||||
// usart_async_enable(usart_desc_p);
|
||||
if (rx != NULL) {
|
||||
// Initially allocate the UART's buffer in the long-lived part of the
|
||||
// heap. UARTs are generally long-lived objects, but the "make long-
|
||||
// lived" machinery is incapable of moving internal pointers like
|
||||
// self->buffer, so do it manually. (However, as long as internal
|
||||
// pointers like this are NOT moved, allocating the buffer
|
||||
// in the long-lived pool is not strictly necessary)
|
||||
// (This is a macro.)
|
||||
if (!ringbuf_alloc(&self->ringbuf, receiver_buffer_size, true)) {
|
||||
mp_raise_msg(&mp_type_MemoryError, translate("Failed to allocate RX buffer"));
|
||||
}
|
||||
active_uarts[uart_id] = self;
|
||||
if (uart_id == 1) {
|
||||
self->uart_irq_id = UART1_IRQ;
|
||||
irq_set_exclusive_handler(self->uart_irq_id, uart1_callback);
|
||||
} else {
|
||||
self->uart_irq_id = UART0_IRQ;
|
||||
irq_set_exclusive_handler(self->uart_irq_id, uart0_callback);
|
||||
}
|
||||
irq_set_enabled(self->uart_irq_id, true);
|
||||
uart_set_irq_enables(self->uart, true /* rx has data */, false /* tx needs data */);
|
||||
}
|
||||
}
|
||||
|
||||
bool common_hal_busio_uart_deinited(busio_uart_obj_t *self) {
|
||||
return self->rx_pin == NO_PIN && self->tx_pin == NO_PIN;
|
||||
return self->tx_pin == NO_PIN && self->rx_pin == NO_PIN;
|
||||
}
|
||||
|
||||
void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
|
||||
if (common_hal_busio_uart_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
// This assignment is only here because the usart_async routines take a *const argument.
|
||||
// struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
// usart_async_disable(usart_desc_p);
|
||||
// usart_async_deinit(usart_desc_p);
|
||||
reset_pin_number(self->rx_pin);
|
||||
uart_deinit(self->uart);
|
||||
ringbuf_free(&self->ringbuf);
|
||||
active_uarts[self->uart_id] = NULL;
|
||||
uart_status[self->uart_id] = STATUS_FREE;
|
||||
reset_pin_number(self->tx_pin);
|
||||
self->rx_pin = NO_PIN;
|
||||
reset_pin_number(self->rx_pin);
|
||||
reset_pin_number(self->cts_pin);
|
||||
reset_pin_number(self->rts_pin);
|
||||
self->tx_pin = NO_PIN;
|
||||
}
|
||||
|
||||
// Read characters.
|
||||
size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t len, int *errcode) {
|
||||
if (self->rx_pin == NO_PIN) {
|
||||
mp_raise_ValueError(translate("No RX pin"));
|
||||
}
|
||||
|
||||
// This assignment is only here because the usart_async routines take a *const argument.
|
||||
// struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
|
||||
if (len == 0) {
|
||||
// Nothing to read.
|
||||
return 0;
|
||||
}
|
||||
|
||||
// struct io_descriptor *io;
|
||||
// usart_async_get_io_descriptor(usart_desc_p, &io);
|
||||
|
||||
size_t total_read = 0;
|
||||
// uint64_t start_ticks = supervisor_ticks_ms64();
|
||||
|
||||
// // Busy-wait until timeout or until we've read enough chars.
|
||||
// while (supervisor_ticks_ms64() - start_ticks <= self->timeout_ms) {
|
||||
// // Read as many chars as we can right now, up to len.
|
||||
// size_t num_read = io_read(io, data, len);
|
||||
|
||||
// // Advance pointer in data buffer, and decrease how many chars left to read.
|
||||
// data += num_read;
|
||||
// len -= num_read;
|
||||
// total_read += num_read;
|
||||
// if (len == 0) {
|
||||
// // Don't need to read any more: data buf is full.
|
||||
// break;
|
||||
// }
|
||||
// if (num_read > 0) {
|
||||
// // Reset the timeout on every character read.
|
||||
// start_ticks = supervisor_ticks_ms64();
|
||||
// }
|
||||
// RUN_BACKGROUND_TASKS;
|
||||
// // Allow user to break out of a timeout with a KeyboardInterrupt.
|
||||
// if (mp_hal_is_interrupted()) {
|
||||
// break;
|
||||
// }
|
||||
// // If we are zero timeout, make sure we don't loop again (in the event
|
||||
// // we read in under 1ms)
|
||||
// if (self->timeout_ms == 0) {
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (total_read == 0) {
|
||||
// *errcode = EAGAIN;
|
||||
// return MP_STREAM_ERROR;
|
||||
// }
|
||||
|
||||
return total_read;
|
||||
self->rx_pin = NO_PIN;
|
||||
self->cts_pin = NO_PIN;
|
||||
self->rts_pin = NO_PIN;
|
||||
}
|
||||
|
||||
// Write characters.
|
||||
@ -321,49 +191,84 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self, const uint8_t *data,
|
||||
mp_raise_ValueError(translate("No TX pin"));
|
||||
}
|
||||
|
||||
// This assignment is only here because the usart_async routines take a *const argument.
|
||||
// struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
|
||||
// struct io_descriptor *io;
|
||||
// usart_async_get_io_descriptor(usart_desc_p, &io);
|
||||
|
||||
// // Start writing characters. This is non-blocking and will
|
||||
// // return immediately after setting up the write.
|
||||
// if (io_write(io, data, len) < 0) {
|
||||
// *errcode = MP_EAGAIN;
|
||||
// return MP_STREAM_ERROR;
|
||||
// }
|
||||
|
||||
// // Busy-wait until all characters transmitted.
|
||||
// struct usart_async_status async_status;
|
||||
// while (true) {
|
||||
// usart_async_get_status(usart_desc_p, &async_status);
|
||||
// if (async_status.txcnt >= len) {
|
||||
// break;
|
||||
// }
|
||||
// RUN_BACKGROUND_TASKS;
|
||||
// }
|
||||
while (len > 0) {
|
||||
while (uart_is_writable(self->uart) && len > 0) {
|
||||
// Write and advance.
|
||||
uart_get_hw(self->uart)->dr = *data++;
|
||||
// Decrease how many chars left to write.
|
||||
len--;
|
||||
}
|
||||
RUN_BACKGROUND_TASKS;
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
// Read characters.
|
||||
size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t len, int *errcode) {
|
||||
if (self->rx_pin == NO_PIN) {
|
||||
mp_raise_ValueError(translate("No RX pin"));
|
||||
}
|
||||
|
||||
if (len == 0) {
|
||||
// Nothing to read.
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Prevent conflict with uart irq.
|
||||
irq_set_enabled(self->uart_irq_id, false);
|
||||
|
||||
// Copy as much received data as available, up to len bytes.
|
||||
size_t total_read = ringbuf_get_n(&self->ringbuf, data, len);
|
||||
|
||||
// Check if we still need to read more data.
|
||||
if (len > total_read) {
|
||||
len-=total_read;
|
||||
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||
// Busy-wait until timeout or until we've read enough chars.
|
||||
while (len > 0 && (supervisor_ticks_ms64() - start_ticks < self->timeout_ms)) {
|
||||
if (uart_is_readable(self->uart)) {
|
||||
// Read and advance.
|
||||
data[total_read] = uart_get_hw(self->uart)->dr;
|
||||
|
||||
// Adjust the counters.
|
||||
len--;
|
||||
total_read++;
|
||||
|
||||
// Reset the timeout on every character read.
|
||||
start_ticks = supervisor_ticks_ms64();
|
||||
}
|
||||
RUN_BACKGROUND_TASKS;
|
||||
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
||||
if (mp_hal_is_interrupted()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Now that we've emptied the ringbuf some, fill it up with anything in the
|
||||
// FIFO. This ensures that we'll empty the FIFO as much as possible and
|
||||
// reset the interrupt when we catch up.
|
||||
_copy_into_ringbuf(&self->ringbuf, self->uart);
|
||||
|
||||
// Re-enable irq.
|
||||
irq_set_enabled(self->uart_irq_id, true);
|
||||
|
||||
if (total_read == 0) {
|
||||
*errcode = EAGAIN;
|
||||
return MP_STREAM_ERROR;
|
||||
}
|
||||
|
||||
return total_read;
|
||||
}
|
||||
|
||||
uint32_t common_hal_busio_uart_get_baudrate(busio_uart_obj_t *self) {
|
||||
return self->baudrate;
|
||||
}
|
||||
|
||||
void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrate) {
|
||||
// This assignment is only here because the usart_async routines take a *const argument.
|
||||
// struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
// usart_async_set_baud_rate(usart_desc_p,
|
||||
// // Samples and ARITHMETIC vs FRACTIONAL must correspond to USART_SAMPR in
|
||||
// // hpl_sercom_config.h.
|
||||
// _usart_async_calculate_baud_rate(baudrate, // e.g. 9600 baud
|
||||
// PROTOTYPE_SERCOM_USART_ASYNC_CLOCK_FREQUENCY,
|
||||
// 16, // samples
|
||||
// USART_BAUDRATE_ASYNCH_ARITHMETIC,
|
||||
// 0 // fraction - not used for ARITHMETIC
|
||||
// ));
|
||||
self->baudrate = baudrate;
|
||||
uart_set_baudrate(self->uart, baudrate);
|
||||
}
|
||||
|
||||
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||
@ -375,30 +280,30 @@ void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeou
|
||||
}
|
||||
|
||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||
// This assignment is only here because the usart_async routines take a *const argument.
|
||||
// struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
// struct usart_async_status async_status;
|
||||
// usart_async_get_status(usart_desc_p, &async_status);
|
||||
// return async_status.rxcnt;
|
||||
return 0;
|
||||
// Prevent conflict with uart irq.
|
||||
irq_set_enabled(self->uart_irq_id, false);
|
||||
// The UART only interrupts after a threshold so make sure to copy anything
|
||||
// out of its FIFO before measuring how many bytes we've received.
|
||||
_copy_into_ringbuf(&self->ringbuf, self->uart);
|
||||
irq_set_enabled(self->uart_irq_id, false);
|
||||
return ringbuf_num_filled(&self->ringbuf);
|
||||
}
|
||||
|
||||
void common_hal_busio_uart_clear_rx_buffer(busio_uart_obj_t *self) {
|
||||
// This assignment is only here because the usart_async routines take a *const argument.
|
||||
// struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
// usart_async_flush_rx_buffer(usart_desc_p);
|
||||
// Prevent conflict with uart irq.
|
||||
irq_set_enabled(self->uart_irq_id, false);
|
||||
ringbuf_clear(&self->ringbuf);
|
||||
|
||||
// Throw away the FIFO contents too.
|
||||
while (uart_is_readable(self->uart)) {
|
||||
(void) uart_get_hw(self->uart)->dr;
|
||||
}
|
||||
irq_set_enabled(self->uart_irq_id, true);
|
||||
}
|
||||
|
||||
// True if there are no characters still to be written.
|
||||
bool common_hal_busio_uart_ready_to_tx(busio_uart_obj_t *self) {
|
||||
if (self->tx_pin == NO_PIN) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
// // This assignment is only here because the usart_async routines take a *const argument.
|
||||
// struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
// struct usart_async_status async_status;
|
||||
// usart_async_get_status(usart_desc_p, &async_status);
|
||||
// return !(async_status.flags & USART_ASYNC_STATUS_BUSY);
|
||||
return uart_is_writable(self->uart);
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
|
||||
* Copyright (c) 2021 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@ -27,21 +27,26 @@
|
||||
#ifndef MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_BUSIO_UART_H
|
||||
#define MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_BUSIO_UART_H
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "py/obj.h"
|
||||
#include "py/ringbuf.h"
|
||||
|
||||
#include "src/rp2_common/hardware_uart/include/hardware/uart.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
// struct usart_async_descriptor usart_desc;
|
||||
uint8_t rx_pin;
|
||||
uint8_t tx_pin;
|
||||
uint8_t character_bits;
|
||||
bool rx_error;
|
||||
uint8_t rx_pin;
|
||||
uint8_t cts_pin;
|
||||
uint8_t rts_pin;
|
||||
uint8_t uart_id;
|
||||
uint8_t uart_irq_id;
|
||||
uint32_t baudrate;
|
||||
uint32_t timeout_ms;
|
||||
uint32_t buffer_length;
|
||||
uint8_t* buffer;
|
||||
uart_inst_t * uart;
|
||||
ringbuf_t ringbuf;
|
||||
} busio_uart_obj_t;
|
||||
|
||||
extern void reset_uart(void);
|
||||
extern void never_reset_uart(uint8_t num);
|
||||
|
||||
#endif // MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_BUSIO_UART_H
|
||||
|
@ -43,6 +43,7 @@ digitalinout_result_t common_hal_digitalio_digitalinout_construct(
|
||||
self->output = false;
|
||||
self->open_drain = false;
|
||||
|
||||
// Set to input. No output value.
|
||||
gpio_init(pin->number);
|
||||
return DIGITALINOUT_OK;
|
||||
}
|
||||
@ -75,11 +76,17 @@ digitalinout_result_t common_hal_digitalio_digitalinout_switch_to_output(
|
||||
digitalio_digitalinout_obj_t* self, bool value,
|
||||
digitalio_drive_mode_t drive_mode) {
|
||||
const uint8_t pin = self->pin->number;
|
||||
gpio_set_dir(pin, GPIO_OUT);
|
||||
// TODO: Turn on "strong" pin driving (more current available).
|
||||
gpio_disable_pulls(pin);
|
||||
|
||||
// Turn on "strong" pin driving (more current available).
|
||||
hw_write_masked(&padsbank0_hw->io[pin],
|
||||
PADS_BANK0_GPIO0_DRIVE_VALUE_12MA << PADS_BANK0_GPIO0_DRIVE_LSB,
|
||||
PADS_BANK0_GPIO0_DRIVE_BITS);
|
||||
|
||||
self->output = true;
|
||||
common_hal_digitalio_digitalinout_set_drive_mode(self, drive_mode);
|
||||
self->open_drain = drive_mode == DRIVE_MODE_OPEN_DRAIN;
|
||||
|
||||
// Pin direction is ultimately set in set_value. We don't need to do it here.
|
||||
common_hal_digitalio_digitalinout_set_value(self, value);
|
||||
return DIGITALINOUT_OK;
|
||||
}
|
||||
@ -92,10 +99,18 @@ digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
|
||||
void common_hal_digitalio_digitalinout_set_value(
|
||||
digitalio_digitalinout_obj_t* self, bool value) {
|
||||
const uint8_t pin = self->pin->number;
|
||||
if (self->open_drain) {
|
||||
gpio_set_dir(pin, value ? GPIO_IN : GPIO_OUT);
|
||||
} else {
|
||||
if (self->open_drain && value) {
|
||||
// If true and open-drain, set the direction -before- setting
|
||||
// the pin value, to to avoid a high glitch on the pin before
|
||||
// switching from output to input for open-drain.
|
||||
gpio_set_dir(pin, GPIO_IN);
|
||||
gpio_put(pin, value);
|
||||
} else {
|
||||
// Otherwise set the direction -after- setting the pin value,
|
||||
// to avoid a glitch which might occur if the old value was
|
||||
// different and the pin was previously set to input.
|
||||
gpio_put(pin, value);
|
||||
gpio_set_dir(pin, GPIO_OUT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -110,9 +125,6 @@ digitalinout_result_t common_hal_digitalio_digitalinout_set_drive_mode(
|
||||
const uint8_t pin = self->pin->number;
|
||||
bool value = common_hal_digitalio_digitalinout_get_value(self);
|
||||
self->open_drain = drive_mode == DRIVE_MODE_OPEN_DRAIN;
|
||||
if (self->open_drain) {
|
||||
gpio_put(pin, false);
|
||||
}
|
||||
// True is implemented differently between modes so reset the value to make
|
||||
// sure it's correct for the new mode.
|
||||
if (value) {
|
||||
|
@ -54,27 +54,25 @@ const uint16_t neopixel_program[] = {
|
||||
0xa142
|
||||
};
|
||||
|
||||
const uint16_t init_program[] = {
|
||||
0xe081
|
||||
};
|
||||
|
||||
void common_hal_neopixel_write(const digitalio_digitalinout_obj_t* digitalinout, uint8_t *pixels, uint32_t num_bytes) {
|
||||
// Set everything up.
|
||||
rp2pio_statemachine_obj_t state_machine;
|
||||
|
||||
// TODO: Cache the state machine after we create it once. We'll need a way to
|
||||
// change the pins then though.
|
||||
uint8_t pin_number = digitalinout->pin->number;
|
||||
uint32_t pins_we_use = 1 << digitalinout->pin->number;
|
||||
bool ok = rp2pio_statemachine_construct(&state_machine,
|
||||
neopixel_program, sizeof(neopixel_program) / sizeof(neopixel_program[0]),
|
||||
800000 * 6, // 800 khz * 6 cycles per bit
|
||||
init_program, 1,
|
||||
NULL, 1,
|
||||
NULL, 1,
|
||||
digitalinout->pin, 1,
|
||||
digitalinout->pin, 1,
|
||||
1 << pin_number, true, false,
|
||||
NULL, 0, // init program
|
||||
NULL, 1, // out
|
||||
NULL, 1, // in
|
||||
NULL, 1, // set
|
||||
digitalinout->pin, 1, // sideset
|
||||
0, pins_we_use, // initial pin state
|
||||
pins_we_use, true, false,
|
||||
true, 8, false, // TX, auto pull every 8 bits. shift left to output msb first
|
||||
true, // Wait for txstall. If we don't, then we'll deinit too quickly.
|
||||
false, 32, true, // RX setting we don't use
|
||||
false); // claim pins
|
||||
if (!ok) {
|
||||
@ -86,7 +84,7 @@ void common_hal_neopixel_write(const digitalio_digitalinout_obj_t* digitalinout,
|
||||
// two.
|
||||
while (port_get_raw_ticks(NULL) < next_start_raw_ticks) {}
|
||||
|
||||
common_hal_rp2pio_statemachine_write(&state_machine, pixels, num_bytes);
|
||||
common_hal_rp2pio_statemachine_write(&state_machine, pixels, num_bytes, 1 /* stride in bytes */);
|
||||
|
||||
// Use a private deinit of the state machine that doesn't reset the pin.
|
||||
rp2pio_statemachine_deinit(&state_machine, true);
|
||||
|
102
ports/raspberrypi/common-hal/nvm/ByteArray.c
Normal file
102
ports/raspberrypi/common-hal/nvm/ByteArray.c
Normal file
@ -0,0 +1,102 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "common-hal/nvm/ByteArray.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "py/runtime.h"
|
||||
#include "src/rp2_common/hardware_flash/include/hardware/flash.h"
|
||||
|
||||
extern uint32_t __flash_binary_start;
|
||||
static const uint32_t flash_binary_start = (uint32_t) &__flash_binary_start;
|
||||
|
||||
#define RMV_OFFSET(addr) addr - flash_binary_start
|
||||
|
||||
uint32_t common_hal_nvm_bytearray_get_length(nvm_bytearray_obj_t* self) {
|
||||
return self->len;
|
||||
}
|
||||
|
||||
static void write_page(uint32_t page_addr, uint32_t offset, uint32_t len, uint8_t* bytes) {
|
||||
// Write a whole page to flash, buffering it first and then erasing and rewriting it
|
||||
// since we can only write a whole page at a time.
|
||||
if (offset == 0 && len == FLASH_PAGE_SIZE) {
|
||||
flash_range_program(RMV_OFFSET(page_addr), bytes, FLASH_PAGE_SIZE);
|
||||
} else {
|
||||
uint8_t buffer[FLASH_PAGE_SIZE];
|
||||
memcpy(buffer, (uint8_t*) page_addr, FLASH_PAGE_SIZE);
|
||||
memcpy(buffer + offset, bytes, len);
|
||||
flash_range_program(RMV_OFFSET(page_addr), buffer, FLASH_PAGE_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
static void erase_and_write_sector(uint32_t address, uint32_t len, uint8_t* bytes) {
|
||||
// Write a whole sector to flash, buffering it first and then erasing and rewriting it
|
||||
// since we can only erase a whole sector at a time.
|
||||
uint8_t buffer[FLASH_SECTOR_SIZE];
|
||||
memcpy(buffer, (uint8_t*) CIRCUITPY_INTERNAL_NVM_START_ADDR, FLASH_SECTOR_SIZE);
|
||||
memcpy(buffer + address, bytes, len);
|
||||
flash_range_erase(RMV_OFFSET(CIRCUITPY_INTERNAL_NVM_START_ADDR), FLASH_SECTOR_SIZE);
|
||||
flash_range_program(RMV_OFFSET(CIRCUITPY_INTERNAL_NVM_START_ADDR), buffer, FLASH_SECTOR_SIZE);
|
||||
}
|
||||
|
||||
void common_hal_nvm_bytearray_get_bytes(nvm_bytearray_obj_t* self,
|
||||
uint32_t start_index, uint32_t len, uint8_t* values) {
|
||||
memcpy(values, self->start_address + start_index, len);
|
||||
}
|
||||
|
||||
bool common_hal_nvm_bytearray_set_bytes(nvm_bytearray_obj_t* self,
|
||||
uint32_t start_index, uint8_t* values, uint32_t len) {
|
||||
uint8_t values_in[len];
|
||||
common_hal_nvm_bytearray_get_bytes(self, start_index, len, values_in);
|
||||
|
||||
bool all_ones = true;
|
||||
for (uint32_t i = 0; i < len; i++) {
|
||||
if (values_in[i] != UINT8_MAX) {
|
||||
all_ones = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (all_ones) {
|
||||
uint32_t address = (uint32_t) self->start_address + start_index;
|
||||
uint32_t offset = address % FLASH_PAGE_SIZE;
|
||||
uint32_t page_addr = address - offset;
|
||||
|
||||
while (len) {
|
||||
uint32_t write_len = MIN(len, FLASH_PAGE_SIZE - offset);
|
||||
write_page(page_addr, offset, write_len, values);
|
||||
len -= write_len;
|
||||
values += write_len;
|
||||
page_addr += FLASH_PAGE_SIZE;
|
||||
offset = 0;
|
||||
}
|
||||
} else {
|
||||
erase_and_write_sector(start_index, len, values);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
38
ports/raspberrypi/common-hal/nvm/ByteArray.h
Normal file
38
ports/raspberrypi/common-hal/nvm/ByteArray.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 microDev
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_NVM_BYTEARRAY_H
|
||||
#define MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_NVM_BYTEARRAY_H
|
||||
|
||||
#include "py/obj.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
uint8_t * start_address;
|
||||
uint32_t len;
|
||||
} nvm_bytearray_obj_t;
|
||||
|
||||
#endif // MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_NVM_BYTEARRAY_H
|
1
ports/raspberrypi/common-hal/nvm/__init__.c
Normal file
1
ports/raspberrypi/common-hal/nvm/__init__.c
Normal file
@ -0,0 +1 @@
|
||||
// No nvm module functions.
|
@ -82,16 +82,23 @@ void pwmio_release_slice_channels(uint8_t slice) {
|
||||
channel_use &= ~channel_mask;
|
||||
channel_mask = _mask(slice, 1);
|
||||
channel_use &= ~channel_mask;
|
||||
|
||||
void pwmout_never_reset(uint8_t slice, uint8_t channel) {
|
||||
never_reset_channel |= _mask(slice, channel);
|
||||
}
|
||||
|
||||
void pwmout_reset_ok(uint8_t slice, uint8_t channel) {
|
||||
never_reset_channel &= ~_mask(slice, channel);
|
||||
}
|
||||
|
||||
void common_hal_pwmio_pwmout_never_reset(pwmio_pwmout_obj_t *self) {
|
||||
never_reset_channel |= _mask(self->slice, self->channel);
|
||||
pwmout_never_reset(self->slice, self->channel);
|
||||
|
||||
never_reset_pin_number(self->pin->number);
|
||||
}
|
||||
|
||||
void common_hal_pwmio_pwmout_reset_ok(pwmio_pwmout_obj_t *self) {
|
||||
never_reset_channel &= ~_mask(self->slice, self->channel);
|
||||
pwmout_reset_ok(self->slice, self->channel);
|
||||
}
|
||||
|
||||
void pwmout_reset(void) {
|
||||
@ -115,21 +122,7 @@ void pwmout_reset(void) {
|
||||
}
|
||||
}
|
||||
|
||||
pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t* self,
|
||||
const mcu_pin_obj_t* pin,
|
||||
uint16_t duty,
|
||||
uint32_t frequency,
|
||||
bool variable_frequency) {
|
||||
self->pin = pin;
|
||||
self->variable_frequency = variable_frequency;
|
||||
self->duty_cycle = duty;
|
||||
|
||||
if (frequency == 0 || frequency > (common_hal_mcu_processor_get_frequency() / 2)) {
|
||||
return PWMOUT_INVALID_FREQUENCY;
|
||||
}
|
||||
|
||||
uint8_t slice = pwm_gpio_to_slice_num(pin->number);
|
||||
uint8_t channel = pwm_gpio_to_channel(pin->number);
|
||||
pwmout_result_t pwmout_allocate(uint8_t slice, uint8_t channel, bool variable_frequency, uint32_t frequency) {
|
||||
uint32_t channel_use_mask = _mask(slice, channel);
|
||||
|
||||
// Check the channel first.
|
||||
@ -151,14 +144,39 @@ pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t* self,
|
||||
return PWMOUT_ALL_TIMERS_ON_PIN_IN_USE;
|
||||
}
|
||||
}
|
||||
self->slice = slice;
|
||||
self->channel = channel;
|
||||
|
||||
channel_use |= channel_use_mask;
|
||||
if (variable_frequency) {
|
||||
slice_variable_frequency |= 1 << slice;
|
||||
}
|
||||
|
||||
return PWMOUT_OK;
|
||||
}
|
||||
|
||||
pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t* self,
|
||||
const mcu_pin_obj_t* pin,
|
||||
uint16_t duty,
|
||||
uint32_t frequency,
|
||||
bool variable_frequency) {
|
||||
self->pin = pin;
|
||||
self->variable_frequency = variable_frequency;
|
||||
self->duty_cycle = duty;
|
||||
|
||||
if (frequency == 0 || frequency > (common_hal_mcu_processor_get_frequency() / 2)) {
|
||||
return PWMOUT_INVALID_FREQUENCY;
|
||||
}
|
||||
|
||||
uint8_t slice = pwm_gpio_to_slice_num(pin->number);
|
||||
uint8_t channel = pwm_gpio_to_channel(pin->number);
|
||||
|
||||
int r = pwmout_allocate(slice, channel, variable_frequency, frequency);
|
||||
if (r != PWMOUT_OK) {
|
||||
return r;
|
||||
}
|
||||
|
||||
self->slice = slice;
|
||||
self->channel = channel;
|
||||
|
||||
if (target_slice_frequencies[slice] != frequency) {
|
||||
// Reset the counter and compare values.
|
||||
pwm_hw->slice[slice].ctr = PWM_CH0_CTR_RESET;
|
||||
@ -166,6 +184,7 @@ pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t* self,
|
||||
common_hal_pwmio_pwmout_set_frequency(self, frequency);
|
||||
pwm_set_enabled(slice, true);
|
||||
} else {
|
||||
common_hal_pwmio_pwmout_set_frequency(self, frequency);
|
||||
common_hal_pwmio_pwmout_set_duty_cycle(self, duty);
|
||||
}
|
||||
|
||||
@ -179,20 +198,23 @@ bool common_hal_pwmio_pwmout_deinited(pwmio_pwmout_obj_t* self) {
|
||||
return self->pin == NULL;
|
||||
}
|
||||
|
||||
void pwmout_free(uint8_t slice, uint8_t channel) {
|
||||
uint32_t channel_mask = _mask(slice, channel);
|
||||
channel_use &= ~channel_mask;
|
||||
never_reset_channel &= ~channel_mask;
|
||||
uint32_t slice_mask = ((1 << CHANNELS_PER_SLICE) - 1) << (slice * CHANNELS_PER_SLICE);
|
||||
if ((channel_use & slice_mask) == 0) {
|
||||
target_slice_frequencies[slice] = 0;
|
||||
slice_variable_frequency &= ~(1 << slice);
|
||||
pwm_set_enabled(slice, false);
|
||||
}
|
||||
}
|
||||
|
||||
void common_hal_pwmio_pwmout_deinit(pwmio_pwmout_obj_t* self) {
|
||||
if (common_hal_pwmio_pwmout_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
uint32_t channel_mask = _mask(self->slice, self->channel);
|
||||
channel_use &= ~channel_mask;
|
||||
never_reset_channel &= ~channel_mask;
|
||||
uint32_t slice_mask = ((1 << CHANNELS_PER_SLICE) - 1) << (self->slice * CHANNELS_PER_SLICE + self->channel);
|
||||
if ((channel_use & slice_mask) == 0) {
|
||||
target_slice_frequencies[self->slice] = 0;
|
||||
slice_variable_frequency &= ~(1 << self->slice);
|
||||
pwm_set_enabled(self->slice, false);
|
||||
}
|
||||
|
||||
pwmout_free(self->slice, self->channel);
|
||||
reset_pin_number(self->pin->number);
|
||||
self->pin = NULL;
|
||||
}
|
||||
|
@ -45,6 +45,11 @@ typedef struct {
|
||||
void pwmout_reset(void);
|
||||
// Private API for AudioPWMOut.
|
||||
void pwmio_pwmout_set_top(pwmio_pwmout_obj_t* self, uint16_t top);
|
||||
// Private APIs for RGBMatrix
|
||||
enum pwmout_result_t pwmout_allocate(uint8_t slice, uint8_t channel, bool variable_frequency, uint32_t frequency);
|
||||
void pwmout_free(uint8_t slice, uint8_t channel);
|
||||
void pwmout_never_reset(uint8_t slice, uint8_t channel);
|
||||
void pwmout_reset_ok(uint8_t slice, uint8_t channel);
|
||||
|
||||
// Private API for countio to claim both channels on a slice
|
||||
bool pwmio_claim_slice_channels(uint8_t slice);
|
||||
|
70
ports/raspberrypi/common-hal/rgbmatrix/RGBMatrix.c
Normal file
70
ports/raspberrypi/common-hal/rgbmatrix/RGBMatrix.c
Normal file
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* This file is part of the Micro Python project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020 Jeff Epler 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 <stddef.h>
|
||||
|
||||
#include "py/mphal.h"
|
||||
|
||||
#include "common-hal/rgbmatrix/RGBMatrix.h"
|
||||
#include "shared-bindings/pwmio/PWMOut.h"
|
||||
#include "shared-module/rgbmatrix/RGBMatrix.h"
|
||||
|
||||
#include "src/rp2_common/hardware_pwm/include/hardware/pwm.h"
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self) {
|
||||
// Choose a PWM channel based on the first RGB pin
|
||||
uint8_t slice = pwm_gpio_to_slice_num(self->rgb_pins[0]);
|
||||
uint8_t channel = pwm_gpio_to_channel(self->rgb_pins[0]);
|
||||
int result = pwmout_allocate(slice, channel, true, 125000000/3);
|
||||
if (result == PWMOUT_OK) {
|
||||
// return value must be nonzero (but slice and channel can both be
|
||||
// zero), so set bit 16...
|
||||
pwmout_never_reset(slice, channel);
|
||||
return (void*)(intptr_t)(slice | (channel << 8) | 0x10000);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void common_hal_rgbmatrix_timer_enable(void* ptr) {
|
||||
int8_t slice = ((intptr_t)ptr) & 0xff;
|
||||
pwm_set_enabled(slice, false);
|
||||
pwm_clear_irq(slice);
|
||||
pwm_set_enabled(slice, true);
|
||||
}
|
||||
|
||||
void common_hal_rgbmatrix_timer_disable(void* ptr) {
|
||||
int8_t slice = ((intptr_t)ptr) & 0xff;
|
||||
pwm_set_enabled(slice, false);
|
||||
}
|
||||
|
||||
void common_hal_rgbmatrix_timer_free(void* ptr) {
|
||||
intptr_t value = (intptr_t)ptr;
|
||||
uint8_t slice = value & 0xff;
|
||||
uint8_t channel = value >> 8;
|
||||
pwm_set_enabled(slice, false);
|
||||
pwmout_free(slice, channel);
|
||||
return;
|
||||
}
|
37
ports/raspberrypi/common-hal/rgbmatrix/RGBMatrix.h
Normal file
37
ports/raspberrypi/common-hal/rgbmatrix/RGBMatrix.h
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 Jeff Epler 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_ATMEL_SAMD_COMMON_HAL_RGBMATRIX_RGBMATRIX_H
|
||||
#define MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_RGBMATRIX_RGBMATRIX_H
|
||||
|
||||
#include "shared-module/rgbmatrix/RGBMatrix.h"
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self);
|
||||
void common_hal_rgbmatrix_timer_enable(void*);
|
||||
void common_hal_rgbmatrix_timer_disable(void*);
|
||||
void common_hal_rgbmatrix_timer_free(void*);
|
||||
|
||||
#endif
|
0
ports/raspberrypi/common-hal/rgbmatrix/__init__.c
Normal file
0
ports/raspberrypi/common-hal/rgbmatrix/__init__.c
Normal file
@ -54,7 +54,6 @@ STATIC PIO pio_instances[2] = {pio0, pio1};
|
||||
|
||||
void _reset_statemachine(PIO pio, uint8_t sm, bool leave_pins) {
|
||||
uint8_t pio_index = pio_get_index(pio);
|
||||
pio_sm_unclaim(pio, sm);
|
||||
uint32_t program_id = _current_program_id[pio_index][sm];
|
||||
if (program_id == 0) {
|
||||
return;
|
||||
@ -89,6 +88,7 @@ void _reset_statemachine(PIO pio, uint8_t sm, bool leave_pins) {
|
||||
}
|
||||
}
|
||||
_current_sm_pins[pio_index][sm] = 0;
|
||||
pio_sm_unclaim(pio, sm);
|
||||
}
|
||||
|
||||
void reset_rp2pio_statemachine(void) {
|
||||
@ -130,8 +130,10 @@ bool rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
const mcu_pin_obj_t * first_in_pin, uint8_t in_pin_count,
|
||||
const mcu_pin_obj_t * first_set_pin, uint8_t set_pin_count,
|
||||
const mcu_pin_obj_t * first_sideset_pin, uint8_t sideset_pin_count,
|
||||
uint32_t initial_pin_state, uint32_t initial_pin_direction,
|
||||
uint32_t pins_we_use, bool tx_fifo, bool rx_fifo,
|
||||
bool auto_pull, uint8_t pull_threshold, bool out_shift_right,
|
||||
bool wait_for_txstall,
|
||||
bool auto_push, uint8_t push_threshold, bool in_shift_right,
|
||||
bool claim_pins) {
|
||||
// Create a program id that isn't the pointer so we can store it without storing the original object.
|
||||
@ -199,6 +201,11 @@ bool rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
_current_sm_pins[pio_index][state_machine] = pins_we_use;
|
||||
_current_pins[pio_index] |= pins_we_use;
|
||||
|
||||
pio_sm_set_pins_with_mask(self->pio, state_machine, initial_pin_state, pins_we_use);
|
||||
pio_sm_set_pindirs_with_mask(self->pio, state_machine, initial_pin_direction, pins_we_use);
|
||||
self->initial_pin_state = initial_pin_state;
|
||||
self->initial_pin_direction = initial_pin_direction;
|
||||
|
||||
for (size_t pin_number = 0; pin_number < TOTAL_GPIO_COUNT; pin_number++) {
|
||||
if ((pins_we_use & (1 << pin_number)) == 0) {
|
||||
continue;
|
||||
@ -260,27 +267,38 @@ bool rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
self->out = tx_fifo;
|
||||
self->out_shift_right = out_shift_right;
|
||||
self->in_shift_right = in_shift_right;
|
||||
self->wait_for_txstall = wait_for_txstall;
|
||||
|
||||
self->init = init;
|
||||
self->init_len = init_len;
|
||||
|
||||
sm_config_set_fifo_join(&c, join);
|
||||
|
||||
pio_sm_init(self->pio, self->state_machine, program_offset, &c);
|
||||
common_hal_rp2pio_statemachine_run(self, init, init_len);
|
||||
|
||||
common_hal_rp2pio_statemachine_set_frequency(self, frequency);
|
||||
pio_sm_set_enabled(self->pio, self->state_machine, true);
|
||||
for (size_t i = 0; i < init_len; i++) {
|
||||
pio_sm_exec(self->pio, self->state_machine, init[i]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static uint32_t mask_and_rotate(const mcu_pin_obj_t* first_pin, uint32_t bit_count, uint32_t value) {
|
||||
value = value & ((1 << bit_count) - 1);
|
||||
uint32_t shift = first_pin->number;
|
||||
return value << shift | value >> (32 - shift);
|
||||
}
|
||||
|
||||
void common_hal_rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
const uint16_t* program, size_t program_len,
|
||||
size_t frequency,
|
||||
const uint16_t* init, size_t init_len,
|
||||
const mcu_pin_obj_t * first_out_pin, uint8_t out_pin_count,
|
||||
const mcu_pin_obj_t * first_out_pin, uint8_t out_pin_count, uint32_t initial_out_pin_state, uint32_t initial_out_pin_direction,
|
||||
const mcu_pin_obj_t * first_in_pin, uint8_t in_pin_count,
|
||||
const mcu_pin_obj_t * first_set_pin, uint8_t set_pin_count,
|
||||
const mcu_pin_obj_t * first_sideset_pin, uint8_t sideset_pin_count,
|
||||
const mcu_pin_obj_t * first_set_pin, uint8_t set_pin_count, uint32_t initial_set_pin_state, uint32_t initial_set_pin_direction,
|
||||
const mcu_pin_obj_t * first_sideset_pin, uint8_t sideset_pin_count, uint32_t initial_sideset_pin_state, uint32_t initial_sideset_pin_direction,
|
||||
bool exclusive_pin_use,
|
||||
bool auto_pull, uint8_t pull_threshold, bool out_shift_right,
|
||||
bool wait_for_txstall,
|
||||
bool auto_push, uint8_t push_threshold, bool in_shift_right) {
|
||||
|
||||
// First, check that all pins are free OR already in use by any PIO if exclusive_pin_use is false.
|
||||
@ -397,9 +415,26 @@ void common_hal_rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
mp_raise_ValueError_varg(translate("Program does OUT without loading OSR"));
|
||||
}
|
||||
|
||||
if (in_pin_count > 8 || out_pin_count > 8) {
|
||||
mp_raise_NotImplementedError(translate("Only IN/OUT of up to 8 supported"));
|
||||
uint32_t initial_pin_state = mask_and_rotate(first_out_pin, out_pin_count, initial_out_pin_state);
|
||||
uint32_t initial_pin_direction = mask_and_rotate(first_out_pin, out_pin_count, initial_out_pin_direction);
|
||||
initial_set_pin_state = mask_and_rotate(first_set_pin, set_pin_count, initial_set_pin_state);
|
||||
initial_set_pin_direction = mask_and_rotate(first_set_pin, set_pin_count, initial_set_pin_direction);
|
||||
uint32_t set_out_overlap = mask_and_rotate(first_out_pin, out_pin_count, 0xffffffff) &
|
||||
mask_and_rotate(first_set_pin, set_pin_count, 0xffffffff);
|
||||
// Check that OUT and SET settings agree because we don't have a way of picking one over the other.
|
||||
if ((initial_pin_state & set_out_overlap) != (initial_set_pin_state & set_out_overlap)) {
|
||||
mp_raise_ValueError(translate("Initial set pin state conflicts with initial out pin state"));
|
||||
}
|
||||
if ((initial_pin_direction & set_out_overlap) != (initial_set_pin_direction & set_out_overlap)) {
|
||||
mp_raise_ValueError(translate("Initial set pin direction conflicts with initial out pin direction"));
|
||||
}
|
||||
initial_pin_state |= initial_set_pin_state;
|
||||
initial_pin_direction |= initial_set_pin_direction;
|
||||
|
||||
// Sideset overrides OUT or SET so we always use its values.
|
||||
uint32_t sideset_mask = mask_and_rotate(first_sideset_pin, sideset_pin_count, 0x1f);
|
||||
initial_pin_state = (initial_pin_state & ~sideset_mask) | mask_and_rotate(first_sideset_pin, sideset_pin_count, initial_sideset_pin_state);
|
||||
initial_pin_direction = (initial_pin_direction & ~sideset_mask) | mask_and_rotate(first_sideset_pin, sideset_pin_count, initial_sideset_pin_direction);
|
||||
|
||||
bool ok = rp2pio_statemachine_construct(self,
|
||||
program, program_len,
|
||||
@ -409,8 +444,10 @@ void common_hal_rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
first_in_pin, in_pin_count,
|
||||
first_set_pin, set_pin_count,
|
||||
first_sideset_pin, sideset_pin_count,
|
||||
initial_pin_state, initial_pin_direction,
|
||||
pins_we_use, tx_fifo, rx_fifo,
|
||||
auto_pull, pull_threshold, out_shift_right,
|
||||
wait_for_txstall,
|
||||
auto_push, push_threshold, in_shift_right,
|
||||
true /* claim pins */);
|
||||
if (!ok) {
|
||||
@ -418,10 +455,51 @@ void common_hal_rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
}
|
||||
}
|
||||
|
||||
void common_hal_rp2pio_statemachine_restart(rp2pio_statemachine_obj_t *self) {
|
||||
pio_sm_restart(self->pio, self->state_machine);
|
||||
|
||||
uint8_t pio_index = pio_get_index(self->pio);
|
||||
uint32_t pins_we_use = _current_sm_pins[pio_index][self->state_machine];
|
||||
pio_sm_set_pins_with_mask(self->pio, self->state_machine, self->initial_pin_state, pins_we_use);
|
||||
pio_sm_set_pindirs_with_mask(self->pio, self->state_machine, self->initial_pin_direction, pins_we_use);
|
||||
common_hal_rp2pio_statemachine_run(self, self->init, self->init_len);
|
||||
pio_sm_set_enabled(self->pio, self->state_machine, true);
|
||||
}
|
||||
|
||||
void common_hal_rp2pio_statemachine_stop(rp2pio_statemachine_obj_t *self) {
|
||||
pio_sm_set_enabled(self->pio, self->state_machine, false);
|
||||
}
|
||||
|
||||
void common_hal_rp2pio_statemachine_run(rp2pio_statemachine_obj_t *self, const uint16_t *instructions, size_t len) {
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
pio_sm_exec(self->pio, self->state_machine, instructions[i]);
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t common_hal_rp2pio_statemachine_get_frequency(rp2pio_statemachine_obj_t* self) {
|
||||
return self->actual_frequency;
|
||||
}
|
||||
|
||||
void common_hal_rp2pio_statemachine_set_frequency(rp2pio_statemachine_obj_t* self, uint32_t frequency) {
|
||||
if (frequency == 0) {
|
||||
frequency = clock_get_hz(clk_sys);
|
||||
}
|
||||
uint64_t frequency256 = ((uint64_t) clock_get_hz(clk_sys)) * 256;
|
||||
uint64_t div256 = frequency256 / frequency;
|
||||
if (frequency256 % div256 > 0) {
|
||||
div256 += 1;
|
||||
}
|
||||
// 0 is interpreted as 0x10000 so it's valid.
|
||||
if (div256 / 256 > 0x10000 || frequency > clock_get_hz(clk_sys)) {
|
||||
mp_raise_ValueError_varg(translate("%q out of range"), MP_QSTR_frequency);
|
||||
}
|
||||
self->actual_frequency = frequency256 / div256;
|
||||
|
||||
pio_sm_set_clkdiv_int_frac(self->pio, self->state_machine, div256 / 256, div256 % 256);
|
||||
// Reset the clkdiv counter in case our new TOP is lower.
|
||||
pio_sm_clkdiv_restart(self->pio, self->state_machine);
|
||||
}
|
||||
|
||||
void rp2pio_statemachine_deinit(rp2pio_statemachine_obj_t *self, bool leave_pins) {
|
||||
uint8_t sm = self->state_machine;
|
||||
uint8_t pio_index = pio_get_index(self->pio);
|
||||
@ -445,9 +523,21 @@ bool common_hal_rp2pio_statemachine_deinited(rp2pio_statemachine_obj_t *self) {
|
||||
return self->state_machine == NUM_PIO_STATE_MACHINES;
|
||||
}
|
||||
|
||||
enum dma_channel_transfer_size _stride_to_dma_size(uint8_t stride) {
|
||||
switch (stride) {
|
||||
case 4:
|
||||
return DMA_SIZE_32;
|
||||
case 2:
|
||||
return DMA_SIZE_16;
|
||||
case 1:
|
||||
default:
|
||||
return DMA_SIZE_8;
|
||||
}
|
||||
}
|
||||
|
||||
static bool _transfer(rp2pio_statemachine_obj_t *self,
|
||||
const uint8_t *data_out, size_t out_len,
|
||||
uint8_t *data_in, size_t in_len) {
|
||||
const uint8_t *data_out, size_t out_len, uint8_t out_stride_in_bytes,
|
||||
uint8_t *data_in, size_t in_len, uint8_t in_stride_in_bytes) {
|
||||
// This implementation is based on SPI but varies because the tx and rx buffers
|
||||
// may be different lengths and occur at different times or speeds.
|
||||
|
||||
@ -472,42 +562,43 @@ static bool _transfer(rp2pio_statemachine_obj_t *self,
|
||||
if (tx) {
|
||||
tx_destination = (volatile uint8_t*) &self->pio->txf[self->state_machine];
|
||||
if (!self->out_shift_right) {
|
||||
tx_destination += 3;
|
||||
tx_destination += 4 - out_stride_in_bytes;
|
||||
}
|
||||
}
|
||||
if (rx) {
|
||||
rx_source = (const volatile uint8_t*) &self->pio->rxf[self->state_machine];
|
||||
if (!self->in_shift_right) {
|
||||
rx_source += 3;
|
||||
if (self->in_shift_right) {
|
||||
rx_source += 4 - in_stride_in_bytes;
|
||||
}
|
||||
}
|
||||
uint32_t stall_mask = 1 << (PIO_FDEBUG_TXSTALL_LSB + self->state_machine);
|
||||
bool use_dma = (!rx || chan_rx >= 0) && (!tx || chan_tx >= 0);
|
||||
if (use_dma) {
|
||||
dma_channel_config c;
|
||||
uint32_t channel_mask = 0;
|
||||
if (tx) {
|
||||
c = dma_channel_get_default_config(chan_tx);
|
||||
channel_config_set_transfer_data_size(&c, DMA_SIZE_8);
|
||||
channel_config_set_transfer_data_size(&c, _stride_to_dma_size(out_stride_in_bytes));
|
||||
channel_config_set_dreq(&c, self->tx_dreq);
|
||||
channel_config_set_read_increment(&c, true);
|
||||
channel_config_set_write_increment(&c, false);
|
||||
dma_channel_configure(chan_tx, &c,
|
||||
tx_destination,
|
||||
data_out,
|
||||
len,
|
||||
out_len / out_stride_in_bytes,
|
||||
false);
|
||||
channel_mask |= 1u << chan_tx;
|
||||
}
|
||||
if (rx) {
|
||||
c = dma_channel_get_default_config(chan_rx);
|
||||
channel_config_set_transfer_data_size(&c, DMA_SIZE_8);
|
||||
channel_config_set_transfer_data_size(&c, _stride_to_dma_size(in_stride_in_bytes));
|
||||
channel_config_set_dreq(&c, self->rx_dreq);
|
||||
channel_config_set_read_increment(&c, false);
|
||||
channel_config_set_write_increment(&c, true);
|
||||
dma_channel_configure(chan_rx, &c,
|
||||
data_in,
|
||||
rx_source,
|
||||
len,
|
||||
in_len / in_stride_in_bytes,
|
||||
false);
|
||||
channel_mask |= 1u << chan_rx;
|
||||
}
|
||||
@ -528,7 +619,7 @@ static bool _transfer(rp2pio_statemachine_obj_t *self,
|
||||
}
|
||||
}
|
||||
// Clear the stall bit so we can detect when the state machine is done transmitting.
|
||||
self->pio->fdebug = PIO_FDEBUG_TXSTALL_BITS;
|
||||
self->pio->fdebug = stall_mask;
|
||||
}
|
||||
|
||||
// If we have claimed only one channel successfully, we should release immediately. This also
|
||||
@ -542,27 +633,31 @@ static bool _transfer(rp2pio_statemachine_obj_t *self,
|
||||
|
||||
if (!use_dma && !mp_hal_is_interrupted()) {
|
||||
// Use software for small transfers, or if couldn't claim two DMA channels
|
||||
size_t rx_remaining = in_len;
|
||||
size_t tx_remaining = out_len;
|
||||
size_t rx_remaining = in_len / in_stride_in_bytes;
|
||||
size_t tx_remaining = out_len / out_stride_in_bytes;
|
||||
|
||||
while (rx_remaining || tx_remaining) {
|
||||
for (int i=0; i<32; i++) {
|
||||
bool did_transfer = false;
|
||||
if (tx_remaining && !pio_sm_is_tx_fifo_full(self->pio, self->state_machine)) {
|
||||
while (tx_remaining && !pio_sm_is_tx_fifo_full(self->pio, self->state_machine)) {
|
||||
if (out_stride_in_bytes == 1) {
|
||||
*tx_destination = *data_out;
|
||||
data_out++;
|
||||
} else if (out_stride_in_bytes == 2) {
|
||||
*((uint16_t*) tx_destination) = *((uint16_t*) data_out);
|
||||
} else if (out_stride_in_bytes == 4) {
|
||||
*((uint32_t*) tx_destination) = *((uint32_t*) data_out);
|
||||
}
|
||||
data_out += out_stride_in_bytes;
|
||||
--tx_remaining;
|
||||
did_transfer = true;
|
||||
}
|
||||
if (rx_remaining && !pio_sm_is_rx_fifo_empty(self->pio, self->state_machine)) {
|
||||
while (rx_remaining && !pio_sm_is_rx_fifo_empty(self->pio, self->state_machine)) {
|
||||
if (in_stride_in_bytes == 1) {
|
||||
*data_in = (uint8_t) *rx_source;
|
||||
data_in++;
|
||||
} else if (in_stride_in_bytes == 2) {
|
||||
*((uint16_t*) data_in) = *((uint16_t*) rx_source);
|
||||
} else if (in_stride_in_bytes == 4) {
|
||||
*((uint32_t*) data_in) = *((uint32_t*) rx_source);
|
||||
}
|
||||
data_in += in_stride_in_bytes;
|
||||
--rx_remaining;
|
||||
did_transfer = true;
|
||||
}
|
||||
if (!did_transfer) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
RUN_BACKGROUND_TASKS;
|
||||
if (mp_hal_is_interrupted()) {
|
||||
@ -570,24 +665,58 @@ static bool _transfer(rp2pio_statemachine_obj_t *self,
|
||||
}
|
||||
}
|
||||
// Clear the stall bit so we can detect when the state machine is done transmitting.
|
||||
self->pio->fdebug = PIO_FDEBUG_TXSTALL_BITS;
|
||||
self->pio->fdebug = stall_mask;
|
||||
}
|
||||
// Wait for the state machine to finish transmitting the data we've queued
|
||||
// up.
|
||||
if (tx) {
|
||||
while (!pio_sm_is_tx_fifo_empty(self->pio, self->state_machine) ||
|
||||
(self->pio->fdebug & PIO_FDEBUG_TXSTALL_BITS) == 0) {
|
||||
(self->wait_for_txstall && (self->pio->fdebug & stall_mask) == 0)) {
|
||||
RUN_BACKGROUND_TASKS;
|
||||
if (mp_hal_is_interrupted()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Writes out the given data.
|
||||
bool common_hal_rp2pio_statemachine_write(rp2pio_statemachine_obj_t *self,
|
||||
const uint8_t *data, size_t len) {
|
||||
// TODO: Provide a way around these checks in case someone wants to use the FIFO
|
||||
// with manually run code.
|
||||
|
||||
bool common_hal_rp2pio_statemachine_write(rp2pio_statemachine_obj_t *self, const uint8_t *data, size_t len, uint8_t stride_in_bytes) {
|
||||
if (!self->out) {
|
||||
mp_raise_RuntimeError(translate("No out in program"));
|
||||
}
|
||||
return _transfer(self, data, len, NULL, 0);
|
||||
return _transfer(self, data, len, stride_in_bytes, NULL, 0, 0);
|
||||
}
|
||||
|
||||
bool common_hal_rp2pio_statemachine_readinto(rp2pio_statemachine_obj_t *self, uint8_t *data, size_t len, uint8_t stride_in_bytes) {
|
||||
if (!self->in) {
|
||||
mp_raise_RuntimeError(translate("No in in program"));
|
||||
}
|
||||
return _transfer(self, NULL, 0, 0, data, len, stride_in_bytes);
|
||||
}
|
||||
|
||||
bool common_hal_rp2pio_statemachine_write_readinto(rp2pio_statemachine_obj_t *self,
|
||||
const uint8_t *data_out, size_t out_len, uint8_t out_stride_in_bytes,
|
||||
uint8_t *data_in, size_t in_len, uint8_t in_stride_in_bytes) {
|
||||
if (!self->in || !self->out) {
|
||||
mp_raise_RuntimeError(translate("No in or out in program"));
|
||||
}
|
||||
return _transfer(self, data_out, out_len, out_stride_in_bytes, data_in, in_len, in_stride_in_bytes);
|
||||
}
|
||||
|
||||
bool common_hal_rp2pio_statemachine_get_rxstall(rp2pio_statemachine_obj_t* self) {
|
||||
uint32_t stall_mask = 1 << (PIO_FDEBUG_RXSTALL_LSB + self->state_machine);
|
||||
return (self->pio->fdebug & stall_mask) != 0;
|
||||
}
|
||||
|
||||
void common_hal_rp2pio_statemachine_clear_rxfifo(rp2pio_statemachine_obj_t *self) {
|
||||
uint8_t level = pio_sm_get_rx_fifo_level(self->pio, self->state_machine);
|
||||
uint32_t stall_mask = 1 << (PIO_FDEBUG_RXSTALL_LSB + self->state_machine);
|
||||
for (size_t i = 0; i < level; i++) {
|
||||
(void) self->pio->rxf[self->state_machine];
|
||||
}
|
||||
self->pio->fdebug = stall_mask;
|
||||
}
|
||||
|
@ -36,8 +36,13 @@ typedef struct {
|
||||
uint32_t pins; // Bitmask of what pins this state machine uses.
|
||||
int state_machine;
|
||||
PIO pio;
|
||||
const uint16_t* init;
|
||||
size_t init_len;
|
||||
uint32_t initial_pin_state;
|
||||
uint32_t initial_pin_direction;
|
||||
bool in;
|
||||
bool out;
|
||||
bool wait_for_txstall;
|
||||
uint tx_dreq;
|
||||
uint rx_dreq;
|
||||
bool out_shift_right;
|
||||
@ -56,8 +61,10 @@ bool rp2pio_statemachine_construct(rp2pio_statemachine_obj_t *self,
|
||||
const mcu_pin_obj_t * first_in_pin, uint8_t in_pin_count,
|
||||
const mcu_pin_obj_t * first_set_pin, uint8_t set_pin_count,
|
||||
const mcu_pin_obj_t * first_sideset_pin, uint8_t sideset_pin_count,
|
||||
uint32_t initial_pin_state, uint32_t initial_pin_direction,
|
||||
uint32_t pins_we_use, bool tx_fifo, bool rx_fifo,
|
||||
bool auto_pull, uint8_t pull_threshold, bool out_shift_right,
|
||||
bool wait_for_txstall,
|
||||
bool auto_push, uint8_t push_threshold, bool in_shift_right,
|
||||
bool claim_pins);
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
MEMORY
|
||||
{
|
||||
FLASH_FIRMWARE (rx) : ORIGIN = 0x10000000, LENGTH = 1024k
|
||||
FLASH_FIRMWARE (rx) : ORIGIN = 0x10000000, LENGTH = 1020k
|
||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 256k
|
||||
SCRATCH_X (rwx) : ORIGIN = 0x20040000, LENGTH = 4k
|
||||
SCRATCH_Y (rwx) : ORIGIN = 0x20041000, LENGTH = 4k
|
||||
|
@ -31,7 +31,8 @@
|
||||
|
||||
#define MICROPY_PY_SYS_PLATFORM "RP2040"
|
||||
|
||||
#define CIRCUITPY_INTERNAL_NVM_SIZE 0
|
||||
#define CIRCUITPY_INTERNAL_NVM_SIZE (4*1024)
|
||||
#define CIRCUITPY_INTERNAL_NVM_START_ADDR (0x100FF000)
|
||||
|
||||
#define CIRCUITPY_DEFAULT_STACK_SIZE (24*1024)
|
||||
|
||||
|
@ -23,21 +23,23 @@ else
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||
endif
|
||||
|
||||
CIRCUITPY_FRAMEBUFFERIO = 1
|
||||
CIRCUITPY_FULL_BUILD = 1
|
||||
CIRCUITPY_BITOPS = 1
|
||||
CIRCUITPY_PWMIO = 1
|
||||
CIRCUITPY_RGBMATRIX = 1
|
||||
|
||||
# Things that need to be implemented.
|
||||
CIRCUITPY_FREQUENCYIO = 0 # Use PWM interally
|
||||
CIRCUITPY_I2CPERIPHERAL = 0
|
||||
CIRCUITPY_NVM = 0
|
||||
CIRCUITPY_NVM = 1
|
||||
CIRCUITPY_PULSEIO = 0 # Use PIO interally
|
||||
CIRCUITPY_ROTARYIO = 0 # Use PIO interally
|
||||
CIRCUITPY_WATCHDOG = 1
|
||||
|
||||
# Audio via PWM
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_AUDIOBUSIO ?= 0 # add this later
|
||||
CIRCUITPY_AUDIOBUSIO ?= 1
|
||||
CIRCUITPY_AUDIOCORE ?= 1
|
||||
CIRCUITPY_AUDIOPWMIO ?= 1
|
||||
|
||||
|
@ -39,6 +39,9 @@
|
||||
#include "shared-bindings/rtc/__init__.h"
|
||||
#include "shared-bindings/pwmio/PWMOut.h"
|
||||
|
||||
#include "common-hal/rtc/RTC.h"
|
||||
#include "common-hal/busio/UART.h"
|
||||
|
||||
#include "supervisor/shared/safe_mode.h"
|
||||
#include "supervisor/shared/stack.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
@ -78,6 +81,9 @@ safe_mode_t port_init(void) {
|
||||
// Reset everything into a known state before board_init.
|
||||
reset_port();
|
||||
|
||||
// Initialize RTC
|
||||
common_hal_rtc_init();
|
||||
|
||||
// For the tick.
|
||||
hardware_alarm_claim(0);
|
||||
hardware_alarm_set_callback(0, _tick_callback);
|
||||
@ -95,6 +101,7 @@ void reset_port(void) {
|
||||
#if CIRCUITPY_BUSIO
|
||||
reset_i2c();
|
||||
reset_spi();
|
||||
reset_uart();
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_PWMIO
|
||||
@ -112,6 +119,9 @@ void reset_port(void) {
|
||||
#if CIRCUITPY_AUDIOPWMIO
|
||||
audiopwmout_reset();
|
||||
#endif
|
||||
#if CIRCUITPY_AUDIOCORE
|
||||
audio_dma_reset();
|
||||
#endif
|
||||
|
||||
reset_all_pins();
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ LD_FILE = boards/STM32F401xd_fs.ld
|
||||
# meantime
|
||||
CIRCUITPY_ULAB = 0
|
||||
CIRCUITPY_BUSDEVICE = 0
|
||||
CIRCUITPY_BITMAPTOOLS = 0
|
||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||
|
||||
SUPEROPT_GC = 0
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
extern void _PM_IRQ_HANDLER(void);
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate() {
|
||||
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self) {
|
||||
TIM_TypeDef * timer = stm_peripherals_find_timer();
|
||||
stm_peripherals_timer_reserve(timer);
|
||||
stm_peripherals_timer_never_reset(timer);
|
||||
|
@ -27,7 +27,9 @@
|
||||
#ifndef MICROPY_INCLUDED_STM_COMMON_HAL_RGBMATRIX_RGBMATRIX_H
|
||||
#define MICROPY_INCLUDED_STM_COMMON_HAL_RGBMATRIX_RGBMATRIX_H
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate(void);
|
||||
#include "shared-module/rgbmatrix/RGBMatrix.h"
|
||||
|
||||
void *common_hal_rgbmatrix_timer_allocate(rgbmatrix_rgbmatrix_obj_t *self);
|
||||
void common_hal_rgbmatrix_timer_enable(void*);
|
||||
void common_hal_rgbmatrix_timer_disable(void*);
|
||||
void common_hal_rgbmatrix_timer_free(void*);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user