Merge branch 'adafruit:main' into main
This commit is contained in:
commit
320dc915e7
7
.codespell/exclude-file.txt
Normal file
7
.codespell/exclude-file.txt
Normal file
@ -0,0 +1,7 @@
|
||||
#define MICROPY_HW_BOARD_NAME "BLOK"
|
||||
USB_PRODUCT = "BLOK"
|
||||
uint32_t THI = (*(uint32_t *)FUSES_HOT_TEMP_VAL_INT_ADDR & FUSES_HOT_TEMP_VAL_INT_Msk) >> FUSES_HOT_TEMP_VAL_INT_Pos;
|
||||
float TH = THI + convert_dec_to_frac(THD);
|
||||
print(binascii.b2a_base64(b"fo"))
|
||||
# again, neither will "there" or "wither", since they have "the"
|
||||
i1Qb$TE"rl
|
22
.codespell/ignore-words.txt
Normal file
22
.codespell/ignore-words.txt
Normal file
@ -0,0 +1,22 @@
|
||||
ans
|
||||
ure
|
||||
clen
|
||||
ser
|
||||
endianess
|
||||
pris
|
||||
synopsys
|
||||
reenable
|
||||
dout
|
||||
inout
|
||||
wel
|
||||
iput
|
||||
hsi
|
||||
astroid
|
||||
busses
|
||||
cyphertext
|
||||
dum
|
||||
deque
|
||||
deques
|
||||
extint
|
||||
shs
|
||||
pass-thru
|
10
.codespellrc
Normal file
10
.codespellrc
Normal file
@ -0,0 +1,10 @@
|
||||
# See: https://github.com/codespell-project/codespell#using-a-config-file
|
||||
[codespell]
|
||||
# In the event of a false positive, add the problematic word, in all lowercase, to 'ignore-words.txt' (one word per line).
|
||||
# Or copy & paste the whole problematic line to 'exclude-file.txt'
|
||||
ignore-words = .codespell/ignore-words.txt
|
||||
exclude-file = .codespell/exclude-file.txt
|
||||
check-filenames =
|
||||
check-hidden =
|
||||
count =
|
||||
skip = .cproject,.git,./lib,./locale,ACKNOWLEDGEMENTS
|
@ -11,6 +11,16 @@ repos:
|
||||
exclude: '^(tests/.*\.exp|tests/cmdline/.*|tests/.*/data/.*|ports/espressif/esp-idf-config/.*|ports/espressif/boards/.*/sdkconfig)'
|
||||
- id: trailing-whitespace
|
||||
exclude: '^(tests/.*\.exp|tests/cmdline/.*|tests/.*/data/.*|lib/mbedtls_errors/.*)'
|
||||
- repo: https://github.com/codespell-project/codespell
|
||||
rev: v2.2.4
|
||||
hooks:
|
||||
- id: codespell
|
||||
args: [-w]
|
||||
exclude: |
|
||||
(?x)^(
|
||||
locale/|
|
||||
lib/
|
||||
)
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: translations
|
||||
|
@ -483,7 +483,7 @@ mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t
|
||||
|
||||
if (self->scan_results != NULL) {
|
||||
if (!shared_module_bleio_scanresults_get_done(self->scan_results)) {
|
||||
mp_raise_bleio_BluetoothError(translate("Scan already in progess. Stop with stop_scan."));
|
||||
mp_raise_bleio_BluetoothError(translate("Scan already in progress. Stop with stop_scan."));
|
||||
}
|
||||
self->scan_results = NULL;
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ typedef struct _bleio_adapter_obj_t {
|
||||
uint16_t manufacturer;
|
||||
uint16_t lmp_subversion;
|
||||
|
||||
// Used to monitor advertising timeout for legacy avertising.
|
||||
// Used to monitor advertising timeout for legacy advertising.
|
||||
uint64_t advertising_start_ticks;
|
||||
uint64_t advertising_timeout_msecs; // If zero, do not check.
|
||||
|
||||
|
@ -515,7 +515,7 @@ void common_hal_bleio_connection_set_connection_interval(bleio_connection_intern
|
||||
// (gattc_char->char_props.write ? CHAR_PROP_WRITE : 0) |
|
||||
// (gattc_char->char_props.write_wo_resp ? CHAR_PROP_WRITE_NO_RESPONSE : 0);
|
||||
|
||||
// // Call common_hal_bleio_characteristic_construct() to initalize some fields and set up evt handler.
|
||||
// // Call common_hal_bleio_characteristic_construct() to initialize some fields and set up evt handler.
|
||||
// common_hal_bleio_characteristic_construct(
|
||||
// characteristic, m_char_discovery_service, gattc_char->handle_value, uuid,
|
||||
// props, SECURITY_MODE_OPEN, SECURITY_MODE_OPEN,
|
||||
|
@ -96,7 +96,7 @@ STATIC uint8_t bleio_properties_to_ble_spec_properties(uint8_t bleio_properties)
|
||||
return ble_spec_properties;
|
||||
}
|
||||
|
||||
// FIX not currently used; reenable when used.
|
||||
// FIX not currently used; re-enable when used.
|
||||
#if 0
|
||||
STATIC uint8_t ble_spec_properties_to_bleio_properties(uint8_t ble_spec_properties) {
|
||||
uint8_t bleio_properties = 0;
|
||||
@ -964,7 +964,7 @@ static void process_read_group_req(uint16_t conn_handle, uint16_t mtu, uint8_t d
|
||||
// Keep track of the first one to make sure.
|
||||
size_t sizeof_first_service_uuid = 0;
|
||||
|
||||
// Size of a single bt_att_group_data chunk. Start with the intial size, and
|
||||
// Size of a single bt_att_group_data chunk. Start with the initial size, and
|
||||
// add the uuid size in the loop below.
|
||||
size_t data_length = sizeof(struct bt_att_group_data);
|
||||
|
||||
|
@ -150,7 +150,7 @@ struct bt_att_read_mult_req {
|
||||
uint16_t handles[];
|
||||
} __packed;
|
||||
|
||||
/* Read Multiple Respose */
|
||||
/* Read Multiple Response */
|
||||
#define BT_ATT_OP_READ_MULT_RSP 0x0f
|
||||
struct bt_att_read_mult_rsp {
|
||||
uint8_t _dummy[0];
|
||||
@ -243,7 +243,7 @@ struct bt_att_read_mult_vl_req {
|
||||
uint16_t handles[];
|
||||
} __packed;
|
||||
|
||||
/* Read Multiple Respose */
|
||||
/* Read Multiple Response */
|
||||
#define BT_ATT_OP_READ_MULT_VL_RSP 0x21
|
||||
struct bt_att_read_mult_vl_rsp {
|
||||
uint16_t len;
|
||||
|
@ -88,7 +88,7 @@ mp_obj_t mpy_init(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *a
|
||||
// This must be first, it sets up the globals dict and other things
|
||||
MP_DYNRUNTIME_INIT_ENTRY
|
||||
|
||||
// Messages can be printed as usualy
|
||||
// Messages can be printed as usually
|
||||
mp_printf(&mp_plat_print, "initialising module self=%p\n", self);
|
||||
|
||||
// Make the functions available in the module's namespace
|
||||
|
45
locale/ID.po
45
locale/ID.po
@ -183,10 +183,6 @@ msgstr "%q harus <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q harus >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -195,6 +191,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1233,7 +1233,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
@ -1531,10 +1532,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Tidak ada kunci yang ditentukan"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "Tidak ada dukungan bilangan bulat yang panjang"
|
||||
@ -1961,8 +1958,8 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Pindai sudah dalam proses. Hentikan dengan stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2274,6 +2271,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2309,11 +2311,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2768,7 +2765,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3068,8 +3065,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "argumen posisi ekstra telah diberikan"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4143,10 +4140,6 @@ msgstr ""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
@ -4403,6 +4396,12 @@ msgstr "zi harus berjenis float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "Zi harus berbentuk (n_section, 2)"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Tidak ada kunci yang ditentukan"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Pindai sudah dalam proses. Hentikan dengan stop_scan."
|
||||
|
||||
#~ msgid "Supply at least one UART pin"
|
||||
#~ msgstr "Berikan setidaknya satu pin UART"
|
||||
|
||||
|
@ -180,10 +180,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -192,6 +188,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1221,7 +1221,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
@ -1519,10 +1520,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1935,7 +1932,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2248,6 +2245,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2283,11 +2285,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2740,7 +2737,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3040,8 +3037,8 @@ msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4114,10 +4111,6 @@ msgstr ""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
|
40
locale/cs.po
40
locale/cs.po
@ -184,10 +184,6 @@ msgstr "%q musí být <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q musí být >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -196,6 +192,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1233,7 +1233,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
@ -1531,10 +1532,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Nebyl zadán klíč"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1950,7 +1947,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2263,6 +2260,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2298,11 +2300,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2755,7 +2752,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3055,8 +3052,8 @@ msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4129,10 +4126,6 @@ msgstr ""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
@ -4389,6 +4382,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Nebyl zadán klíč"
|
||||
|
||||
#~ msgid "%q pin invalid"
|
||||
#~ msgstr "pin %q není platný"
|
||||
|
||||
|
@ -187,10 +187,6 @@ msgstr "%q muss <= %d sein"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q muss >= %d sein"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -200,6 +196,10 @@ msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
"%q muss ein Byte-Array oder ein array vom Typ 'h', 'H', 'b', oder 'B' sein"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1252,7 +1252,8 @@ msgstr "Der Interne WatchDog Timer ist abgelaufen."
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "Ungültiger %q"
|
||||
@ -1551,10 +1552,6 @@ msgstr "Nicht in Programm"
|
||||
msgid "No in or out in program"
|
||||
msgstr "Kein Ein oder Aus in Programm"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Es wurde kein Schlüssel angegeben"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "Keine langen Integer (long) unterstützt"
|
||||
@ -1979,8 +1976,8 @@ msgstr "Maßstabs-Abmeßungen müssen durch 3 teilbar sein"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Scannen bereits in Bearbeitung. Stoppe mit stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2298,6 +2295,11 @@ msgstr "Unbekannter BLE-Fehler bei %s:%d: %d"
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr "Unbekannter BLE-Fehler: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2333,11 +2335,6 @@ msgstr "Unbekannter Systemfirmware Fehler: %04x"
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr "Unbekannter System-Firmware-Fehler: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr "Unbekannter Fehlercode %d"
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2808,7 +2805,7 @@ msgstr "Kann Blockgröße von 512 nicht setzen"
|
||||
msgid "can't set attribute"
|
||||
msgstr "kann Attribut nicht setzen"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3116,8 +3113,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "Es wurden zusätzliche Argumente ohne Schlüsselwort angegeben"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein"
|
||||
|
||||
@ -4203,10 +4200,6 @@ msgstr "Zeitstempel außerhalb des Bereichs für Plattform time_t"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr "tobytes kann nur für dichte Arrays aufgerufen werden"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "zu viele Argumente mit dem angegebenen Format"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr "zu viele Dimensionen"
|
||||
@ -4465,6 +4458,19 @@ msgstr "zi muss eine Gleitkommazahl sein"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi muss die Form (n_section, 2) haben"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Es wurde kein Schlüssel angegeben"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Scannen bereits in Bearbeitung. Stoppe mit stop_scan."
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Unkown error code %d"
|
||||
#~ msgstr "Unbekannter Fehlercode %d"
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "zu viele Argumente mit dem angegebenen Format"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
|
37
locale/el.po
37
locale/el.po
@ -188,10 +188,6 @@ msgstr "%q πρέπει να είναι <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q πρέπει να είναι >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -200,6 +196,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr "%q πρέπει να είναι bytearray ή array τύπου 'h', 'H', 'b', ή 'B'"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1242,7 +1242,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
@ -1540,10 +1541,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1958,7 +1955,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2271,6 +2268,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2306,11 +2308,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2763,7 +2760,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3063,8 +3060,8 @@ msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4137,10 +4134,6 @@ msgstr ""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
|
@ -187,10 +187,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q must be >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -199,6 +195,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1234,7 +1234,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "Invalid %q"
|
||||
@ -1532,10 +1533,6 @@ msgstr "No in in program"
|
||||
msgid "No in or out in program"
|
||||
msgstr "No in or out in program"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "No key was specified"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "No long integer support"
|
||||
@ -1956,8 +1953,8 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2269,6 +2266,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2304,11 +2306,6 @@ msgstr "Unknown system firmware error: %04x"
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2763,7 +2760,7 @@ msgstr "can't set 512 block size"
|
||||
msgid "can't set attribute"
|
||||
msgstr "can't set attribute"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3066,8 +3063,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "extra positional arguments given"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "file must be a file opened in byte mode"
|
||||
|
||||
@ -4140,10 +4137,6 @@ msgstr "timestamp out of range for platform time_t"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr "tobytes can be invoked for dense arrays only"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "too many arguments provided with the given format"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr "too many dimensions"
|
||||
@ -4400,6 +4393,15 @@ msgstr "zi must be of float type"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi must be of shape (n_section, 2)"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "No key was specified"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Scan already in progess. Stop with stop_scan."
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "too many arguments provided with the given format"
|
||||
|
||||
#~ msgid "Supply at least one UART pin"
|
||||
#~ msgstr "Supply at least one UART pin"
|
||||
|
||||
|
56
locale/es.po
56
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: 2023-03-09 10:38+0000\n"
|
||||
"PO-Revision-Date: 2023-03-23 17:26+0000\n"
|
||||
"Last-Translator: Jose David M <jquintana202020@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
@ -195,10 +195,6 @@ msgstr "%q debe ser <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q debe ser >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr "%q debe ser un arreglo de tipo 'H'"
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr "%q debe ser un bytearray o array de tipo 'H' o 'B'"
|
||||
@ -207,6 +203,10 @@ msgstr "%q debe ser un bytearray o array de tipo 'H' o 'B'"
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr "%q debe ser un byte-matriz o matriz de tipo 'h', 'H', 'b', o 'B'"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr "%q debe ser un arreglo de tipo 'H'"
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1267,7 +1267,8 @@ msgstr "El temporizador interno watchdog terminó."
|
||||
msgid "Interrupt error."
|
||||
msgstr "Error de interrupción."
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "%q inválido"
|
||||
@ -1292,7 +1293,7 @@ msgstr "BSSID inválido"
|
||||
|
||||
#: main.c
|
||||
msgid "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
msgstr ""
|
||||
msgstr "CIRCUITPY_PYSTACK_SIZE inválido\n"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Invalid MAC address"
|
||||
@ -1569,10 +1570,6 @@ msgstr "No hay \"in\" en el programa"
|
||||
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"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "No hay soporte de entero largo"
|
||||
@ -2000,8 +1997,8 @@ msgstr "Las dimensiones de escala debe ser divisibles por 3"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Escaneo en progreso. Usa stop_scan para detener."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2320,6 +2317,11 @@ msgstr "Error BLE desconocido en %s:%d: %d"
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr "Error BLE desconocido: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2355,11 +2357,6 @@ msgstr "Error desconocido en el firmware sistema: %04x"
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr "Error del sistema de firmware desconocido: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr "Codigo de error desconocido: %d"
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2823,7 +2820,7 @@ msgstr "no se puede definir un tamaño de bloque de 512"
|
||||
msgid "can't set attribute"
|
||||
msgstr "no se puede asignar el atributo"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr "no se puede configurar el attributo '%q'"
|
||||
|
||||
@ -3131,8 +3128,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "argumento posicional adicional dado"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "el archivo deberia ser una archivo abierto en modo byte"
|
||||
|
||||
@ -4213,10 +4210,6 @@ msgstr "timestamp fuera de rango para plataform time_t"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr "tobytes solo pueden ser invocados por arrays densos"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "demasiados argumentos provistos con el formato dado"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr "demasiadas dimensiones"
|
||||
@ -4473,6 +4466,19 @@ 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 "No key was specified"
|
||||
#~ msgstr "No se especificó ninguna llave"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Escaneo en progreso. Usa stop_scan para detener."
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Unkown error code %d"
|
||||
#~ msgstr "Codigo de error desconocido: %d"
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "demasiados argumentos provistos con el formato dado"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
|
@ -181,10 +181,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -193,6 +189,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1233,7 +1233,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
@ -1531,10 +1532,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1951,7 +1948,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2265,6 +2262,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2300,11 +2302,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2761,7 +2758,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr "hindi ma i-set ang attribute"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3069,8 +3066,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "dagdag na positional argument na ibinigay"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "file ay dapat buksan sa byte mode"
|
||||
|
||||
@ -4150,10 +4147,6 @@ msgstr "wala sa sakop ng timestamp ang platform time_t"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "masyadong maraming mga argumento na ibinigay sa ibinigay na format"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
@ -4412,6 +4405,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "masyadong maraming mga argumento na ibinigay sa ibinigay na format"
|
||||
|
||||
#~ msgid "Expected a %q"
|
||||
#~ msgstr "Umasa ng %q"
|
||||
|
||||
|
52
locale/fr.po
52
locale/fr.po
@ -192,10 +192,6 @@ msgstr "%q doit être <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q doit être >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr "%q doit être un bytearray ou matrice de type 'H' ou 'B'"
|
||||
@ -204,6 +200,10 @@ msgstr "%q doit être un bytearray ou matrice de type 'H' ou 'B'"
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr "%q doit être a bytearray ou array de type 'h', 'H', 'b', ou 'B'"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1273,7 +1273,8 @@ msgstr "Le minuteur du watchdog interne a expiré."
|
||||
msgid "Interrupt error."
|
||||
msgstr "Erreur d'interruption."
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "%q invalide"
|
||||
@ -1575,10 +1576,6 @@ msgstr "Programme n'a pas de \"in\""
|
||||
msgid "No in or out in program"
|
||||
msgstr "Programme n'a aucun \"in\" ni \"out\""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Aucune clé n'a été spécifiée"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "Pas de support pour chiffre entier long"
|
||||
@ -2006,8 +2003,8 @@ msgstr "La dimension d'échelle doit être un multiple de 3"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Scan déjà en cours. Arrêtez avec stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2326,6 +2323,11 @@ msgstr "Erreur BLE inconnue à %s:%d : %d"
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr "Erreur BLE inconnue : %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2361,11 +2363,6 @@ msgstr "Faute inconnue du logiciel système : %04x"
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr "Erreur du logiciel système inconnue : %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr "Erreur inconnue %d"
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2833,7 +2830,7 @@ msgstr "impossible de définir une taille de bloc de 512"
|
||||
msgid "can't set attribute"
|
||||
msgstr "attribut non modifiable"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr "attribut '%q' non modifiable"
|
||||
|
||||
@ -3145,8 +3142,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "argument(s) positionnel(s) supplémentaire(s) donné(s)"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "le fichier doit être un fichier ouvert en mode 'byte'"
|
||||
|
||||
@ -4232,10 +4229,6 @@ msgstr "timestamp hors bornes pour 'time_t' de la plateforme"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr "tobytes ne peut être appelée que pour des matrices dense"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "trop d'arguments fournis avec ce format"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr "Trop de dimensions"
|
||||
@ -4492,6 +4485,19 @@ 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 "No key was specified"
|
||||
#~ msgstr "Aucune clé n'a été spécifiée"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Scan déjà en cours. Arrêtez avec stop_scan."
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Unkown error code %d"
|
||||
#~ msgstr "Erreur inconnue %d"
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "trop d'arguments fournis avec ce format"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
|
37
locale/hi.po
37
locale/hi.po
@ -180,10 +180,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -192,6 +188,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1221,7 +1221,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
@ -1519,10 +1520,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1935,7 +1932,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2248,6 +2245,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2283,11 +2285,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2740,7 +2737,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3040,8 +3037,8 @@ msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4114,10 +4111,6 @@ msgstr ""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
|
@ -184,10 +184,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -196,6 +192,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1235,7 +1235,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
@ -1534,10 +1535,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1958,7 +1955,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2272,6 +2269,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2307,11 +2309,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2769,7 +2766,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr "impossibile impostare attributo"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3074,8 +3071,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "argomenti posizonali extra dati"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4160,10 +4157,6 @@ msgstr "timestamp è fuori intervallo per il time_t della piattaforma"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "troppi argomenti forniti con il formato specificato"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
@ -4422,6 +4415,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "troppi argomenti forniti con il formato specificato"
|
||||
|
||||
#~ msgid "%q pin invalid"
|
||||
#~ msgstr "%q pin non valido"
|
||||
|
||||
|
48
locale/ja.po
48
locale/ja.po
@ -187,10 +187,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -199,6 +195,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1234,7 +1234,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "不正な %q"
|
||||
@ -1532,10 +1533,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "キーが指定されていません"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "long integerに対応していません"
|
||||
@ -1951,8 +1948,8 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "既にスキャン進行中。stop_scanで停止してください"
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2265,6 +2262,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2300,11 +2302,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2757,7 +2754,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3061,8 +3058,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "余分な位置引数が与えられました"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "fileはバイトモードで開かれたファイルでなければなりません"
|
||||
|
||||
@ -4138,10 +4135,6 @@ msgstr "timestampがプラットフォームのtime_tの範囲外"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "指定された書式に対して引数が多すぎます"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
@ -4398,6 +4391,15 @@ msgstr "ziはfloat値でなければなりません"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "キーが指定されていません"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "既にスキャン進行中。stop_scanで停止してください"
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "指定された書式に対して引数が多すぎます"
|
||||
|
||||
#~ msgid "Supply at least one UART pin"
|
||||
#~ msgstr "少なくとも1つのUARTピンが必要"
|
||||
|
||||
|
37
locale/ko.po
37
locale/ko.po
@ -181,10 +181,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -193,6 +189,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1224,7 +1224,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr ""
|
||||
@ -1522,10 +1523,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1938,7 +1935,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2252,6 +2249,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2287,11 +2289,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2744,7 +2741,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3044,8 +3041,8 @@ msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4118,10 +4115,6 @@ msgstr ""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
|
48
locale/nl.po
48
locale/nl.po
@ -180,10 +180,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -192,6 +188,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1229,7 +1229,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "Ongeldige %q"
|
||||
@ -1527,10 +1528,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Een sleutel was niet gespecificeerd"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "Geen lange integer ondersteuning"
|
||||
@ -1956,8 +1953,8 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Scan wordt al uitvoerd. Stop met stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2269,6 +2266,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2304,11 +2306,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2768,7 +2765,7 @@ msgstr "kan geen 512 blokgrootte instellen"
|
||||
msgid "can't set attribute"
|
||||
msgstr "kan attribute niet instellen"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3070,8 +3067,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "extra positionele argumenten gegeven"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "bestand moet een bestand zijn geopend in byte modus"
|
||||
|
||||
@ -4148,10 +4145,6 @@ msgstr "timestamp buiten bereik voor platform time_t"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr "tobytes kunnen alleen ingeroepen worden voor gesloten arrays"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "te veel argumenten opgegeven bij dit formaat"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
@ -4408,6 +4401,15 @@ 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 "No key was specified"
|
||||
#~ msgstr "Een sleutel was niet gespecificeerd"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Scan wordt al uitvoerd. Stop met stop_scan."
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "te veel argumenten opgegeven bij dit formaat"
|
||||
|
||||
#~ msgid "Supply at least one UART pin"
|
||||
#~ msgstr "Geef op zijn minst 1 UART pin op"
|
||||
|
||||
|
48
locale/pl.po
48
locale/pl.po
@ -182,10 +182,6 @@ msgstr ""
|
||||
msgid "%q must be >= %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr ""
|
||||
@ -194,6 +190,10 @@ msgstr ""
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1229,7 +1229,8 @@ msgstr ""
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "Nieprawidłowe %q"
|
||||
@ -1527,10 +1528,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Nie określono klucza"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1943,8 +1940,8 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Skanuj już w toku. Zatrzymaj za pomocą stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2256,6 +2253,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2291,11 +2293,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2748,7 +2745,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr "nie można ustawić atrybutu"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3049,8 +3046,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "nadmiarowe argumenty pozycyjne"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "file musi być otwarte w trybie bajtowym"
|
||||
|
||||
@ -4124,10 +4121,6 @@ msgstr "timestamp poza zakresem dla time_t na tej platformie"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "zbyt wiele argumentów podanych dla tego formatu"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
@ -4384,6 +4377,15 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Nie określono klucza"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Skanuj już w toku. Zatrzymaj za pomocą stop_scan."
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "zbyt wiele argumentów podanych dla tego formatu"
|
||||
|
||||
#~ msgid "Supply at least one UART pin"
|
||||
#~ msgstr "Podaj co najmniej jeden pin UART"
|
||||
|
||||
|
@ -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: 2023-03-08 07:10+0000\n"
|
||||
"PO-Revision-Date: 2023-03-23 17:26+0000\n"
|
||||
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: pt_BR\n"
|
||||
@ -193,10 +193,6 @@ msgstr "%q deve ser <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "o %q deve ser >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr "%q deve ser uma matriz do tipo 'H'"
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr "%q deve ser um bytearray ou uma matriz do tipo 'H' ou 'B'"
|
||||
@ -205,6 +201,10 @@ msgstr "%q deve ser um bytearray ou uma matriz do tipo 'H' ou 'B'"
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr "%q deve ser um bytearray ou uma matriz do tipo 'h', 'H', 'b', ou 'B'"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr "%q deve ser uma matriz do tipo 'H'"
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1263,7 +1263,8 @@ msgstr "O temporizador do watchdog interno expirou."
|
||||
msgid "Interrupt error."
|
||||
msgstr "Erro de interrupção."
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "%q Inválido"
|
||||
@ -1288,7 +1289,7 @@ msgstr "BSSID Inválido"
|
||||
|
||||
#: main.c
|
||||
msgid "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
msgstr ""
|
||||
msgstr "CIRCUITPY_PYSTACK_SIZE inválido\n"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Invalid MAC address"
|
||||
@ -1561,10 +1562,6 @@ msgstr "Sem entrada no programa"
|
||||
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"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "Não há compatibilidade com inteiro longo"
|
||||
@ -1994,8 +1991,8 @@ msgstr "As dimensões da escala devem ser poder ser divididas por 3"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "O escaneamento já está em andamento. Interrompa com stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2314,6 +2311,11 @@ msgstr "Houve um erro BLE desconhecido em %s:%d: %d"
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr "Houve um erro BLE desconhecido: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2349,11 +2351,6 @@ msgstr "Erro desconhecido do firmware: %04x"
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr "Ocorreu um erro desconhecido no firmware do sistema: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr "Código de erro desconhecido %d"
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2819,7 +2816,7 @@ msgstr "não é possível definir o tamanho de 512 blocos"
|
||||
msgid "can't set attribute"
|
||||
msgstr "não é possível definir o atributo"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr "não é possível definir o atributo '%q'"
|
||||
|
||||
@ -3128,8 +3125,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "argumentos extra posicionais passados"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "o arquivo deve ser um arquivo aberto no modo byte"
|
||||
|
||||
@ -4213,10 +4210,6 @@ msgstr "timestamp fora do intervalo para a plataforma time_t"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr "os tobytes podem ser invocados apenas nas matrizes densas"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "Muitos argumentos fornecidos com o formato dado"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr "dimensões demais"
|
||||
@ -4473,6 +4466,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 "No key was specified"
|
||||
#~ msgstr "Nenhuma chave foi definida"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "O escaneamento já está em andamento. Interrompa com stop_scan."
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Unkown error code %d"
|
||||
#~ msgstr "Código de erro desconhecido %d"
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "Muitos argumentos fornecidos com o formato dado"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
|
40
locale/ru.po
40
locale/ru.po
@ -187,10 +187,6 @@ msgstr "%q должно быть <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q должно быть >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr "%q должно быть bytearray или array типа 'H' или 'B'"
|
||||
@ -199,6 +195,10 @@ msgstr "%q должно быть bytearray или array типа 'H' или 'B'"
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr "%q должно быть bytearray или array типа 'h', 'H', 'b', или 'B'"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1266,7 +1266,8 @@ msgstr "Внутренний сторожевой таймер истек."
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "Недопустимый %q"
|
||||
@ -1567,10 +1568,6 @@ msgstr "Нет in в программе"
|
||||
msgid "No in or out in program"
|
||||
msgstr "В программе отсутствует ввод или вывод"
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr "Ключ не был указан"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "Нет поддержки длинных целых чисел (long integer)"
|
||||
@ -1996,7 +1993,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2311,6 +2308,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2346,11 +2348,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2803,7 +2800,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3103,8 +3100,8 @@ msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4177,10 +4174,6 @@ msgstr ""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
@ -4437,6 +4430,9 @@ msgstr "zi должно быть типа float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi должен иметь форму (n_section, 2)"
|
||||
|
||||
#~ msgid "No key was specified"
|
||||
#~ msgstr "Ключ не был указан"
|
||||
|
||||
#~ msgid "Supply at least one UART pin"
|
||||
#~ msgstr "Предоставьте хотяб один пин UART"
|
||||
|
||||
|
56
locale/sv.po
56
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: 2023-03-08 07:10+0000\n"
|
||||
"PO-Revision-Date: 2023-03-23 17:26+0000\n"
|
||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sv\n"
|
||||
@ -192,10 +192,6 @@ msgstr "%q måste vara <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q måste vara >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr "%q måste vara en array av typen 'H'"
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr "%q måste vara en bytearray eller array av typen 'H' eller 'B'"
|
||||
@ -206,6 +202,10 @@ msgstr ""
|
||||
"%q måste vara en bytearray eller en array av typen \"h\", \"H\", \"b\" eller "
|
||||
"\"B\""
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr "%q måste vara en array av typen 'H'"
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1248,7 +1248,8 @@ msgstr "Intern watchdog-timer har löpt ut."
|
||||
msgid "Interrupt error."
|
||||
msgstr "Interrupt-fel."
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "Ogiltig %q"
|
||||
@ -1273,7 +1274,7 @@ msgstr "Ogiltig BSSID"
|
||||
|
||||
#: main.c
|
||||
msgid "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
msgstr ""
|
||||
msgstr "Ogiltig CIRCUITPY_PYSTACK_SIZE\n"
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
msgid "Invalid MAC address"
|
||||
@ -1547,10 +1548,6 @@ msgstr "Inget in i programmet"
|
||||
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"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "Inget stöd för långt heltal"
|
||||
@ -1975,8 +1972,8 @@ msgstr "Skaldimension måste vara delbar med 3"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Skanning pågår redan. Avsluta med stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2290,6 +2287,11 @@ msgstr "Okänt BLE-fel vid %s:%d: %d"
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr "Okänt BLE-fel: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2325,11 +2327,6 @@ msgstr "Okänt systemfirmwarefel: %04x"
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr "Okänt fel i systemets firmware: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr "Okänd felkod %d"
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2790,7 +2787,7 @@ msgstr "kan inte sätta blockstorlek 512"
|
||||
msgid "can't set attribute"
|
||||
msgstr "kan inte att ange attribut"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr "kan inte sätta attribut '%q'"
|
||||
|
||||
@ -3097,8 +3094,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "extra positions-argument angivna"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "filen måste vara en fil som öppnats i byte-läge"
|
||||
|
||||
@ -4175,10 +4172,6 @@ msgstr "timestamp utom räckvidd för plattformens \"time_t\""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr "tobyte kan enbart anropas för täta matriser"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "för många argument för det givna formatet"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr "för många dimensioner"
|
||||
@ -4435,6 +4428,19 @@ 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 "No key was specified"
|
||||
#~ msgstr "Ingen nyckel angavs"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Skanning pågår redan. Avsluta med stop_scan."
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Unkown error code %d"
|
||||
#~ msgstr "Okänd felkod %d"
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "för många argument för det givna formatet"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
|
37
locale/tr.po
37
locale/tr.po
@ -188,10 +188,6 @@ msgstr "%q <= %d olmalıdır"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q >= %d olmalıdır"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr "%q 'H' ya da 'B' tipi bir bytearray ya da array olmalıdır"
|
||||
@ -200,6 +196,10 @@ msgstr "%q 'H' ya da 'B' tipi bir bytearray ya da array olmalıdır"
|
||||
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr "%q 'h', 'H', 'b' ya da 'B' tipi bir bytearray ya da array olmalı"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1239,7 +1239,8 @@ msgstr "Dahili bekçi zamanlayıcısının süresi doldu."
|
||||
msgid "Interrupt error."
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "Geçersiz %q"
|
||||
@ -1538,10 +1539,6 @@ msgstr ""
|
||||
msgid "No in or out in program"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/aesio/aes.c
|
||||
msgid "No key was specified"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr ""
|
||||
@ -1957,7 +1954,7 @@ msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -2270,6 +2267,11 @@ msgstr ""
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2305,11 +2307,6 @@ msgstr ""
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2762,7 +2759,7 @@ msgstr ""
|
||||
msgid "can't set attribute"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr ""
|
||||
|
||||
@ -3062,8 +3059,8 @@ msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -4136,10 +4133,6 @@ msgstr ""
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr ""
|
||||
|
@ -195,10 +195,6 @@ msgstr "%q bìxū <= %d"
|
||||
msgid "%q must be >= %d"
|
||||
msgstr "%q bìxū >= %d"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr "%q bì xū shì lèi xíng wéi 'H' de shù zǔ"
|
||||
|
||||
#: shared-bindings/analogbufio/BufferedIn.c
|
||||
msgid "%q must be a bytearray or array of type 'H' or 'B'"
|
||||
msgstr "%q bì xū shì zì jié shù zǔ huò lèi xíng wéi 'H' huò 'B' de shù zǔ"
|
||||
@ -208,6 +204,10 @@ msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
|
||||
msgstr ""
|
||||
"%q bì xū shì zì jié shù zǔ huò lèi xíng wéi 'h', 'H', 'b', huò 'B' de shù zǔ"
|
||||
|
||||
#: ports/espressif/common-hal/analogbufio/BufferedIn.c
|
||||
msgid "%q must be array of type 'H'"
|
||||
msgstr "%q bì xū shì lèi xíng wéi 'H' de shù zǔ"
|
||||
|
||||
#: ports/raspberrypi/bindings/cyw43/__init__.c py/argcheck.c py/objexcept.c
|
||||
#: shared-bindings/canio/CAN.c shared-bindings/digitalio/Pull.c
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
@ -1255,7 +1255,8 @@ msgstr "Nèibù kān mén gǒu dìngshí qì chāoshí."
|
||||
msgid "Interrupt error."
|
||||
msgstr "zhōng duàn cuò wù."
|
||||
|
||||
#: py/argcheck.c shared-bindings/digitalio/DigitalInOut.c
|
||||
#: ports/mimxrt10xx/common-hal/pwmio/PWMOut.c py/argcheck.c
|
||||
#: shared-bindings/digitalio/DigitalInOut.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
msgid "Invalid %q"
|
||||
msgstr "wú xiào %q"
|
||||
@ -1554,10 +1555,6 @@ msgstr "chéng xù zhōng méi yǒu"
|
||||
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"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "No long integer support"
|
||||
msgstr "Méiyǒu zhǎng zhěngshù zhīchí"
|
||||
@ -1980,8 +1977,8 @@ msgstr "bǐ lì chǐ cùn bì xū chú yǐ 3"
|
||||
|
||||
#: ports/espressif/common-hal/_bleio/Adapter.c
|
||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||
msgid "Scan already in progess. Stop with stop_scan."
|
||||
msgstr "Zhèngzài jìn háng sǎomiáo. Shǐyòng stop_scan tíngzhǐ."
|
||||
msgid "Scan already in progress. Stop with stop_scan."
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -2295,6 +2292,11 @@ msgstr "%s:%d: %d chù chū xiàn wèi zhī BLE cuò wù"
|
||||
msgid "Unknown BLE error: %d"
|
||||
msgstr "wèi zhī de BLE cuò wù: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unknown error code %d"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/wifi/Radio.c
|
||||
#, c-format
|
||||
msgid "Unknown failure %d"
|
||||
@ -2330,11 +2332,6 @@ msgstr "wèi zhī xì tǒng gù jiàn cuò wù: %04x"
|
||||
msgid "Unknown system firmware error: %d"
|
||||
msgstr "wèi zhī de xì tǒng gù jiàn cuò wù: %d"
|
||||
|
||||
#: ports/raspberrypi/common-hal/wifi/__init__.c
|
||||
#, c-format
|
||||
msgid "Unkown error code %d"
|
||||
msgstr "wèi zhī cuò wù dài %d"
|
||||
|
||||
#: shared-bindings/adafruit_pixelbuf/PixelBuf.c
|
||||
#: shared-module/_pixelmap/PixelMap.c
|
||||
#, c-format
|
||||
@ -2795,7 +2792,7 @@ msgstr "wúfǎ shèzhì 512 kuài dàxiǎo"
|
||||
msgid "can't set attribute"
|
||||
msgstr "wúfǎ shèzhì shǔxìng"
|
||||
|
||||
#: py/runtime.c
|
||||
#: py/runtime.c shared-bindings/supervisor/Runtime.c
|
||||
msgid "can't set attribute '%q'"
|
||||
msgstr "wú fǎ shè zhì shǔ xìng '%q'"
|
||||
|
||||
@ -3103,8 +3100,8 @@ msgid "extra positional arguments given"
|
||||
msgstr "gěi chūle éwài de wèizhì cānshù"
|
||||
|
||||
#: shared-bindings/audiocore/WaveFile.c shared-bindings/audiomp3/MP3Decoder.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/synthio/__init__.c
|
||||
#: shared-module/gifio/GifWriter.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c shared-bindings/gifio/OnDiskGif.c
|
||||
#: shared-bindings/synthio/__init__.c shared-module/gifio/GifWriter.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "wénjiàn bìxū shì zài zì jié móshì xià dǎkāi de wénjiàn"
|
||||
|
||||
@ -4181,10 +4178,6 @@ msgstr "time_t shíjiān chuō chāochū píngtái fànwéi"
|
||||
msgid "tobytes can be invoked for dense arrays only"
|
||||
msgstr "tobytes zhǐ néng duì mì jí shù zǔ diào yòng"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
msgstr "tígōng jǐ dìng géshì de cānshù tài duō"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c extmod/ulab/code/numpy/create.c
|
||||
msgid "too many dimensions"
|
||||
msgstr "chǐ cùn tài duō"
|
||||
@ -4441,6 +4434,19 @@ 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 "No key was specified"
|
||||
#~ msgstr "Wèi zhǐdìng mì yào"
|
||||
|
||||
#~ msgid "Scan already in progess. Stop with stop_scan."
|
||||
#~ msgstr "Zhèngzài jìn háng sǎomiáo. Shǐyòng stop_scan tíngzhǐ."
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Unkown error code %d"
|
||||
#~ msgstr "wèi zhī cuò wù dài %d"
|
||||
|
||||
#~ msgid "too many arguments provided with the given format"
|
||||
#~ msgstr "tígōng jǐ dìng géshì de cānshù tài duō"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ "Invalid CIRCUITPY_PYSTACK_SIZE\n"
|
||||
|
6
main.c
6
main.c
@ -1111,6 +1111,8 @@ void gc_collect(void) {
|
||||
// have lost their references in the VM even though they are mounted.
|
||||
gc_collect_root((void **)&MP_STATE_VM(vfs_mount_table), sizeof(mp_vfs_mount_t) / sizeof(mp_uint_t));
|
||||
|
||||
port_gc_collect();
|
||||
|
||||
background_callback_gc_collect();
|
||||
|
||||
#if CIRCUITPY_ALARM
|
||||
@ -1143,6 +1145,10 @@ void gc_collect(void) {
|
||||
gc_collect_end();
|
||||
}
|
||||
|
||||
// Ports may provide an implementation of this function if it is needed
|
||||
MP_WEAK void port_gc_collect() {
|
||||
}
|
||||
|
||||
void NORETURN nlr_jump_fail(void *val) {
|
||||
reset_into_safe_mode(SAFE_MODE_NLR_JUMP_FAIL);
|
||||
while (true) {
|
||||
|
@ -59,6 +59,7 @@ INC += -I. \
|
||||
ifeq ($(CHIP_FAMILY), samd21)
|
||||
PERIPHERALS_CHIP_FAMILY=samd21
|
||||
OPTIMIZATION_FLAGS ?= -Os
|
||||
|
||||
# TinyUSB defines
|
||||
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAMD21 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=128 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=128 -DCFG_TUD_MSC_BUFSIZE=512
|
||||
endif
|
||||
@ -101,24 +102,26 @@ ifeq ($(DEBUG), 1)
|
||||
endif
|
||||
else
|
||||
CFLAGS += -DNDEBUG
|
||||
# -finline-limit can shrink the image size.
|
||||
# -finline-limit=80 or so is similar to not having it on.
|
||||
# There is no simple default value, though.
|
||||
|
||||
# Do a default shrink for small builds.
|
||||
ifndef CFLAGS_INLINE_LIMIT
|
||||
ifeq ($(CIRCUITPY_FULL_BUILD),0)
|
||||
CFLAGS_INLINE_LIMIT = 50
|
||||
# Do a default shrink for small builds, including all SAMD21 builds.
|
||||
ifeq ($(CIRCUITPY_FULL_BUILD),0)
|
||||
SHRINK_BUILD = 1
|
||||
else
|
||||
ifeq ($(CHIP_FAMILY), samd21)
|
||||
SHRINK_BUILD = 1
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef CFLAGS_INLINE_LIMIT
|
||||
CFLAGS += -finline-limit=$(CFLAGS_INLINE_LIMIT)
|
||||
# -finline-limit can shrink the image size.
|
||||
# -finline-limit=80 or so is similar to not having it on.
|
||||
# There is no simple default value, though.
|
||||
ifeq ($(SHRINK_BUILD), 1)
|
||||
CFLAGS += -finline-limit=45
|
||||
endif
|
||||
|
||||
ifeq ($(CIRCUITPY_FULL_BUILD),0)
|
||||
CFLAGS += --param inline-unit-growth=15 --param max-inline-insns-auto=20
|
||||
endif
|
||||
# We used to do this but it seems to not reduce space any more, at least in gcc 11.
|
||||
# Leave it here, commented out, just for reference.
|
||||
# --param inline-unit-growth=15 --param max-inline-insns-auto=20
|
||||
|
||||
ifdef CFLAGS_BOARD
|
||||
CFLAGS += $(CFLAGS_BOARD)
|
||||
|
@ -49,7 +49,7 @@
|
||||
#define CONF_TC3_WAVE_DUTY_VAL 0x1f4
|
||||
#endif
|
||||
|
||||
/* Caculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
/* Calculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
#if CONF_TC3_PRESCALER < TC_CTRLA_PRESCALER_DIV64_Val
|
||||
#define CONF_TC3_CC0 \
|
||||
((uint32_t)(((double)CONF_TC3_WAVE_PER_VAL * CONF_GCLK_TC3_FREQUENCY) / 1000000 / (1 << CONF_TC3_PRESCALER) - 1))
|
||||
|
@ -42,7 +42,7 @@
|
||||
#define CONF_TC0_WAVE_DUTY_VAL 0x1f4
|
||||
#endif
|
||||
|
||||
/* Caculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
/* Calculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
#if CONF_TC0_PRESCALER < TC_CTRLA_PRESCALER_DIV64_Val
|
||||
#define CONF_TC0_CC0 \
|
||||
((uint32_t)(((double)CONF_TC0_WAVE_PER_VAL * CONF_GCLK_TC0_FREQUENCY) / 1000000 / (1 << CONF_TC0_PRESCALER) - 1))
|
||||
|
@ -42,7 +42,7 @@
|
||||
#define CONF_TC0_WAVE_DUTY_VAL 0x1f4
|
||||
#endif
|
||||
|
||||
/* Caculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
/* Calculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
#if CONF_TC0_PRESCALER < TC_CTRLA_PRESCALER_DIV64_Val
|
||||
#define CONF_TC0_CC0 \
|
||||
((uint32_t)(((double)CONF_TC0_WAVE_PER_VAL * CONF_GCLK_TC0_FREQUENCY) / 1000000 / (1 << CONF_TC0_PRESCALER) - 1))
|
||||
|
@ -42,7 +42,7 @@
|
||||
#define CONF_TC0_WAVE_DUTY_VAL 0x1f4
|
||||
#endif
|
||||
|
||||
/* Caculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
/* Calculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
#if CONF_TC0_PRESCALER < TC_CTRLA_PRESCALER_DIV64_Val
|
||||
#define CONF_TC0_CC0 \
|
||||
((uint32_t)(((double)CONF_TC0_WAVE_PER_VAL * CONF_GCLK_TC0_FREQUENCY) / 1000000 / (1 << CONF_TC0_PRESCALER) - 1))
|
||||
|
@ -51,7 +51,7 @@ uint8_t display_init_sequence[] = {
|
||||
0xc5, 1, 0x0e, // _VMCTR1 VCOMH = 4V, VOML = -1.1V
|
||||
0x2a, 0, // _INVOFF
|
||||
0x36, 1, 0x18, // _MADCTL bottom to top refresh
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 sycle osc equalie,
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 cycle osc equalie,
|
||||
// fix on VTL
|
||||
0x3a, 1, 0x05, // COLMOD - 16bit color
|
||||
0xe0, 16, 0x02, 0x1c, 0x07, 0x12, // _GMCTRP1 Gamma
|
||||
|
@ -50,7 +50,7 @@ uint8_t display_init_sequence[] = {
|
||||
0xc5, 1, 0x0e, // _VMCTR1 VCOMH = 4V, VOML = -1.1V
|
||||
0x2a, 0, // _INVOFF
|
||||
0x36, 1, 0b10100000, // _MADCTL for rotation 0
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 sycle osc equalie,
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 cycle osc equalie,
|
||||
// fix on VTL
|
||||
0x3a, 1, 0x05, // COLMOD - 16bit color
|
||||
0xe0, 16, 0x02, 0x1c, 0x07, 0x12, // _GMCTRP1 Gamma
|
||||
|
@ -52,7 +52,7 @@ uint8_t display_init_sequence[] = {
|
||||
0xc5, 1, 0x0e, // _VMCTR1 VCOMH = 4V, VOML = -1.1V
|
||||
0x2a, 0, // _INVOFF
|
||||
0x36, 1, 0b10100000, // _MADCTL for rotation 0
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 sycle osc equalie,
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 cycle osc equalie,
|
||||
// fix on VTL
|
||||
0x3a, 1, 0x05, // COLMOD - 16bit color
|
||||
0xe0, 16, 0x02, 0x1c, 0x07, 0x12, // _GMCTRP1 Gamma
|
||||
|
@ -52,7 +52,7 @@ uint8_t display_init_sequence[] = {
|
||||
0xc5, 1, 0x0e, // _VMCTR1 VCOMH = 4V, VOML = -1.1V
|
||||
0x2a, 0, // _INVOFF
|
||||
0x36, 1, 0xa8, // _MADCTL bottom to top refresh
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 sycle osc equalie,
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 cycle osc equalie,
|
||||
// fix on VTL
|
||||
0x3a, 1, 0x05, // COLMOD - 16bit color
|
||||
0xe0, 16, 0x02, 0x1c, 0x07, 0x12, // _GMCTRP1 Gamma
|
||||
|
@ -36,7 +36,7 @@ STATIC volatile bool woke_up = false;
|
||||
STATIC mp_float_t wakeup_time;
|
||||
|
||||
void common_hal_alarm_time_timealarm_construct(alarm_time_timealarm_obj_t *self, mp_float_t monotonic_time) {
|
||||
// TODO: when issueing light/seep sleep, throw a ValueError if the
|
||||
// TODO: when issuing light/seep sleep, throw a ValueError if the
|
||||
// time exceeds the maximum value. For light sleep, max =
|
||||
// 2**32 / 16384 = 3 days. For deep sleep, max = 2**32 / 32
|
||||
// = 1550 days.
|
||||
|
@ -482,7 +482,7 @@ uint32_t common_hal_frequencyio_frequencyin_get_item(frequencyio_frequencyin_obj
|
||||
float time_each_event = self->factor / self->frequency; // get the time for each event during actual period
|
||||
float capture_diff = self->factor - self->capture_period; // get the difference of actual and base periods
|
||||
// we only need to adjust if the capture_diff can contain 1 or more events
|
||||
// if so, we add how many events could have occured during the diff time
|
||||
// if so, we add how many events could have occurred during the diff time
|
||||
if (time_each_event > capture_diff) {
|
||||
frequency_adjustment = capture_diff / time_each_event;
|
||||
}
|
||||
|
@ -189,7 +189,7 @@
|
||||
// - firmware
|
||||
// - internal CIRCUITPY flash filesystem (optional)
|
||||
// - internal config, used to store crystalless clock calibration info (optional)
|
||||
// - microntroller.nvm (optional)
|
||||
// - microcontroller.nvm (optional)
|
||||
|
||||
// Define these regions starting up from the bottom of flash:
|
||||
|
||||
|
@ -1073,7 +1073,7 @@ static void sd_mmc_deselect_slot(void) {
|
||||
* \note
|
||||
* This function runs the initialization procedure and the identification
|
||||
* process, then it sets the SD/MMC card in transfer state.
|
||||
* At last, it will automaticly enable maximum bus width and transfer speed.
|
||||
* At last, it will automatically enable maximum bus width and transfer speed.
|
||||
*
|
||||
* \return true if success, otherwise false
|
||||
*/
|
||||
@ -1205,7 +1205,7 @@ static bool sd_mmc_mci_card_init(void) {
|
||||
* \note
|
||||
* This function runs the initialization procedure and the identification
|
||||
* process, then it sets the SD/MMC card in transfer state.
|
||||
* At last, it will automaticly enable maximum bus width and transfer speed.
|
||||
* At last, it will automatically enable maximum bus width and transfer speed.
|
||||
*
|
||||
* \return true if success, otherwise false
|
||||
*/
|
||||
@ -1270,7 +1270,7 @@ static bool sd_mmc_mci_install_mmc(void) {
|
||||
uint8_t retry = 10;
|
||||
while (retry--) {
|
||||
/* Retry is a WORKAROUND for no compliance card (Atmel Internal ref. MMC19):
|
||||
* These cards seem not ready immediatly
|
||||
* These cards seem not ready immediately
|
||||
* after the end of busy of mmc_cmd6_set_high_speed()*/
|
||||
|
||||
/* Set default block size */
|
||||
@ -1427,7 +1427,7 @@ sd_mmc_err_t sd_mmc_wait_end_of_read_blocks(bool abort) {
|
||||
return SD_MMC_OK;
|
||||
}
|
||||
|
||||
/* All blocks are transfered then stop read operation */
|
||||
/* All blocks are transferred then stop read operation */
|
||||
if (sd_mmc_nb_block_to_tranfer == 1) {
|
||||
/* Single block transfer, then nothing to do */
|
||||
sd_mmc_deselect_slot();
|
||||
@ -1506,7 +1506,7 @@ sd_mmc_err_t sd_mmc_wait_end_of_write_blocks(bool abort) {
|
||||
return SD_MMC_OK;
|
||||
}
|
||||
|
||||
/* All blocks are transfered then stop write operation */
|
||||
/* All blocks are transferred then stop write operation */
|
||||
if (sd_mmc_nb_block_to_tranfer == 1) {
|
||||
/* Single block transfer, then nothing to do */
|
||||
sd_mmc_deselect_slot();
|
||||
|
@ -67,7 +67,7 @@ typedef uint8_t sd_mmc_err_t; /**< Type of return error code */
|
||||
#define SD_MMC_INIT_ONGOING 1 /**< Card not initialized */
|
||||
#define SD_MMC_ERR_NO_CARD 2 /**< No SD/MMC card inserted */
|
||||
#define SD_MMC_ERR_UNUSABLE 3 /**< Unusable card */
|
||||
#define SD_MMC_ERR_SLOT 4 /**< Slot unknow */
|
||||
#define SD_MMC_ERR_SLOT 4 /**< Slot unknown */
|
||||
#define SD_MMC_ERR_COMM 5 /**< General communication error */
|
||||
#define SD_MMC_ERR_PARAM 6 /**< Illeage input parameter */
|
||||
#define SD_MMC_ERR_WP 7 /**< Card write protected */
|
||||
@ -166,7 +166,7 @@ uint32_t sd_mmc_get_capacity(uint8_t slot);
|
||||
*
|
||||
* \param[in] slot Card slot
|
||||
*
|
||||
* \return true, if write portected
|
||||
* \return true, if write protected
|
||||
*/
|
||||
bool sd_mmc_is_write_protected(uint8_t slot);
|
||||
|
||||
|
@ -73,8 +73,8 @@ extern "C" {
|
||||
* Responses types:
|
||||
*
|
||||
* R1, R3, R4 & R5 use a 48 bits response protected by a 7bit CRC checksum
|
||||
* - R1 receiv data not specified
|
||||
* - R3 receiv OCR
|
||||
* - R1 receive data not specified
|
||||
* - R3 receive OCR
|
||||
* - R4, R5 RCA management (MMC only)
|
||||
* - R6, R7 RCA management (SD only)
|
||||
*
|
||||
@ -115,14 +115,14 @@ typedef uint32_t sdmmc_cmd_def_t;
|
||||
#define SDMMC_RESP_CRC (1lu << 12)
|
||||
// ! Card may send busy
|
||||
#define SDMMC_RESP_BUSY (1lu << 13)
|
||||
// Open drain for a braodcast command (bc)
|
||||
// Open drain for a broadcast command (bc)
|
||||
// or to enter in inactive state (MCI only)
|
||||
#define SDMMC_CMD_OPENDRAIN (1lu << 14)
|
||||
// ! To signal a data write operation
|
||||
#define SDMMC_CMD_WRITE (1lu << 15)
|
||||
// ! To signal a SDIO tranfer in multi byte mode
|
||||
// ! To signal a SDIO transfer in multi byte mode
|
||||
#define SDMMC_CMD_SDIO_BYTE (1lu << 16)
|
||||
// ! To signal a SDIO tranfer in block mode
|
||||
// ! To signal a SDIO transfer in block mode
|
||||
#define SDMMC_CMD_SDIO_BLOCK (1lu << 17)
|
||||
// ! To signal a data transfer in stream mode
|
||||
#define SDMMC_CMD_STREAM (1lu << 18)
|
||||
@ -132,7 +132,7 @@ typedef uint32_t sdmmc_cmd_def_t;
|
||||
#define SDMMC_CMD_MULTI_BLOCK (1lu << 20)
|
||||
// ! @}
|
||||
|
||||
// ! \name Set of flags to define a reponse type
|
||||
// ! \name Set of flags to define a response type
|
||||
// ! @{
|
||||
#define SDMMC_CMD_NO_RESP (0)
|
||||
#define SDMMC_CMD_R1 (SDMMC_RESP_PRESENT | SDMMC_RESP_CRC)
|
||||
@ -324,7 +324,7 @@ typedef uint32_t sdmmc_cmd_def_t;
|
||||
#define SD_MCI_ACMD41_SD_SEND_OP_COND (41 | SDMMC_CMD_R3 | SDMMC_CMD_OPENDRAIN)
|
||||
/**
|
||||
* ACMD41(R1): Send host capacity support information (HCS) and activates the
|
||||
* card's initilization process
|
||||
* card's initialization process
|
||||
*/
|
||||
#define SD_SPI_ACMD41_SD_SEND_OP_COND (41 | SDMMC_CMD_R1)
|
||||
/**
|
||||
@ -440,7 +440,7 @@ typedef uint32_t sdmmc_cmd_def_t;
|
||||
#define SDIO_R5_ERROR (1lu << 11) /**< General error */
|
||||
#define SDIO_R5_FUNC_NUM (1lu << 9) /**< Invalid function number */
|
||||
#define SDIO_R5_OUT_OF_RANGE (1lu << 8) /**< Argument out of range */
|
||||
#define SDIO_R5_STATUS_ERR (SDIO_R5_ERROR | SDIO_R5_FUNC_NUM | SDIO_R5_OUT_OF_RANGE) // !< Errro status bits mask
|
||||
#define SDIO_R5_STATUS_ERR (SDIO_R5_ERROR | SDIO_R5_FUNC_NUM | SDIO_R5_OUT_OF_RANGE) // !< Error status bits mask
|
||||
// ! @}
|
||||
|
||||
// ! \name SDIO state (in R6)
|
||||
|
@ -307,7 +307,7 @@ safe_mode_t port_init(void) {
|
||||
// because it was hard enough to figure out, and maybe there's
|
||||
// a mistake that could make it work in the future.
|
||||
#if 0
|
||||
// Designate QSPI memory mapped region as not cachable.
|
||||
// Designate QSPI memory mapped region as not cacheable.
|
||||
|
||||
// Turn off MPU in case it is on.
|
||||
MPU->CTRL = 0;
|
||||
@ -320,7 +320,7 @@ safe_mode_t port_init(void) {
|
||||
0b011 << MPU_RASR_AP_Pos | // full read/write access for privileged and user mode
|
||||
0b000 << MPU_RASR_TEX_Pos | // caching not allowed, strongly ordered
|
||||
1 << MPU_RASR_S_Pos | // sharable
|
||||
0 << MPU_RASR_C_Pos | // not cachable
|
||||
0 << MPU_RASR_C_Pos | // not cacheable
|
||||
0 << MPU_RASR_B_Pos | // not bufferable
|
||||
0b10111 << MPU_RASR_SIZE_Pos | // 16MB region size
|
||||
1 << MPU_RASR_ENABLE_Pos // enable this region
|
||||
|
@ -55,7 +55,7 @@ Connect these pins using a `USB adapter <https://www.adafruit.com/product/4090>`
|
||||
|
||||
**UART Connection:**
|
||||
|
||||
A `USB to UART convertor <https://www.adafruit.com/product/3309>`_ can be used for connecting to ESP32-C3 to get access to the serial console and REPL and for flashing CircuitPython.
|
||||
A `USB to UART converter <https://www.adafruit.com/product/3309>`_ can be used for connecting to ESP32-C3 to get access to the serial console and REPL and for flashing CircuitPython.
|
||||
|
||||
The following connections need to be made in this case:
|
||||
|
||||
@ -92,7 +92,7 @@ Connect these pins using a `USB adapter <https://www.adafruit.com/product/4090>`
|
||||
|
||||
**UART Connection:**
|
||||
|
||||
A `USB to UART convertor <https://www.adafruit.com/product/3309>`_ can be used for connecting to ESP32-S2 to get access to the serial console and REPL and for flashing CircuitPython.
|
||||
A `USB to UART converter <https://www.adafruit.com/product/3309>`_ can be used for connecting to ESP32-S2 to get access to the serial console and REPL and for flashing CircuitPython.
|
||||
|
||||
The following connections need to be made in this case:
|
||||
|
||||
@ -129,7 +129,7 @@ Connect these pins using a `USB adapter <https://www.adafruit.com/product/4090>`
|
||||
|
||||
**UART Connection:**
|
||||
|
||||
A `USB to UART convertor <https://www.adafruit.com/product/3309>`_ can be used for connecting to ESP32-S3 to get access to the serial console and REPL and for flashing CircuitPython.
|
||||
A `USB to UART converter <https://www.adafruit.com/product/3309>`_ can be used for connecting to ESP32-S3 to get access to the serial console and REPL and for flashing CircuitPython.
|
||||
|
||||
The following connections need to be made in this case:
|
||||
|
||||
|
@ -63,7 +63,7 @@
|
||||
//| """
|
||||
//| Configure and initialize a camera with the given properties
|
||||
//|
|
||||
//| This driver requires that the ``CIRCUITPY_RESERVED_PSRAM`` in ``settings.toml`` be large enough to hold the camera frambuffer(s). Generally, boards with built-in cameras will have a default setting that is large enough. If the constructor raises a MemoryError or an IDFError, this probably indicates the setting is too small and should be increased.
|
||||
//| This driver requires that the ``CIRCUITPY_RESERVED_PSRAM`` in ``settings.toml`` be large enough to hold the camera framebuffer(s). Generally, boards with built-in cameras will have a default setting that is large enough. If the constructor raises a MemoryError or an IDFError, this probably indicates the setting is too small and should be increased.
|
||||
//|
|
||||
//|
|
||||
//| .. important::
|
||||
@ -89,7 +89,7 @@
|
||||
//| :param reset_pin: The reset input to the camera module
|
||||
//| :param pixel_format: The pixel format of the captured image
|
||||
//| :param frame_size: The size of captured image
|
||||
//| :param jpeg_quality: For `PixelFormat.JPEG`, the quality. Higher numbers increase quality. If the quality is too high, the JPEG data will be larger than the availalble buffer size and the image will be unusable or truncated. The exact range of appropriate values depends on the sensor and must be determined empirically.
|
||||
//| :param jpeg_quality: For `PixelFormat.JPEG`, the quality. Higher numbers increase quality. If the quality is too high, the JPEG data will be larger than the available buffer size and the image will be unusable or truncated. The exact range of appropriate values depends on the sensor and must be determined empirically.
|
||||
//| :param framebuffer_count: The number of framebuffers (1 for single-buffered and 2 for double-buffered)
|
||||
//| :param grab_mode: When to grab a new frame
|
||||
//| """
|
||||
|
@ -32,7 +32,7 @@
|
||||
#include "common-hal/espnow/__init__.h"
|
||||
|
||||
// TODO: check peer already exist
|
||||
// TODO: check peer dosen't exist
|
||||
// TODO: check peer doesn't exist
|
||||
|
||||
//| class Peer:
|
||||
//| """A data class to store parameters specific to a peer."""
|
||||
|
102
ports/espressif/boards/01space_lcd042_esp32c3/board.c
Normal file
102
ports/espressif/boards/01space_lcd042_esp32c3/board.c
Normal file
@ -0,0 +1,102 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2021 microDev
|
||||
* Copyright (c) 2021 skieast/Bruce Segal
|
||||
*
|
||||
* 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 "shared-bindings/board/__init__.h"
|
||||
#include "shared-bindings/displayio/I2CDisplay.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/displayio/mipi_constants.h"
|
||||
#include "shared-bindings/busio/I2C.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/board.h"
|
||||
#include "supervisor/shared/board.h"
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
uint8_t display_init_sequence[] = { // SSD1306
|
||||
0xAE, 0, // DISPLAY_OFF
|
||||
0x20, 1, 0x00, // Set memory addressing to horizontal mode.
|
||||
0x81, 1, 0xcf, // set contrast control
|
||||
0xA1, 0, // Column 127 is segment 0
|
||||
0xA6, 0, // Normal display
|
||||
0xc8, 0, // Normal display
|
||||
0xA8, 1, 0x3f, // Mux ratio is 1/64
|
||||
0xd5, 1, 0x80, // Set divide ratio
|
||||
0xd9, 1, 0xf1, // Set pre-charge period
|
||||
0xda, 1, 0x12, // Set com configuration
|
||||
0xdb, 1, 0x40, // Set vcom configuration
|
||||
0x8d, 1, 0x14, // Enable charge pump
|
||||
0xAF, 0, // DISPLAY_ON
|
||||
};
|
||||
|
||||
void board_init(void) {
|
||||
busio_i2c_obj_t *i2c = common_hal_board_create_i2c(0);
|
||||
|
||||
// What we would do if it wasn't the shared board I2C: (for reference)
|
||||
// busio_i2c_obj_t *i2c = &displays[0].i2cdisplay_bus.inline_bus;
|
||||
// common_hal_busio_i2c_construct(i2c, &pin_GPIO23, &pin_GPIO22, 100000, 0);
|
||||
// common_hal_busio_i2c_never_reset(i2c);
|
||||
|
||||
displayio_i2cdisplay_obj_t *bus = &displays[0].i2cdisplay_bus;
|
||||
bus->base.type = &displayio_i2cdisplay_type;
|
||||
common_hal_displayio_i2cdisplay_construct(bus,
|
||||
i2c,
|
||||
0x3c,
|
||||
NULL
|
||||
);
|
||||
|
||||
displayio_display_obj_t *display = &displays[0].display;
|
||||
display->base.type = &displayio_display_type;
|
||||
common_hal_displayio_display_construct(display,
|
||||
bus,
|
||||
72, // Width
|
||||
40, // Height
|
||||
28, // column start
|
||||
28, // row start
|
||||
0, // rotation
|
||||
1, // Color depth
|
||||
true, // grayscale
|
||||
false, // pixels in byte share row. Only used with depth < 8
|
||||
1, // bytes per cell. Only valid for depths < 8
|
||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
||||
true, // reverse_pixels_in_word
|
||||
0x21, // Set column command
|
||||
0x22, // Set row command
|
||||
44, // Write ram command
|
||||
display_init_sequence,
|
||||
sizeof(display_init_sequence),
|
||||
NULL, // no backlight pin
|
||||
0x81, // brightness command
|
||||
1.0f, // brightness
|
||||
true, // single_byte_bounds
|
||||
true, // data as commands
|
||||
true, // auto_refresh
|
||||
60, // native_frames_per_second
|
||||
true, // backlight_on_high
|
||||
false, // SH1107_addressing
|
||||
0); // backlight pwm frequency
|
||||
}
|
||||
|
||||
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
|
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2023 Neradoc
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// Board setup
|
||||
#define MICROPY_HW_BOARD_NAME "01Space 0.42 OLED ESP32C3"
|
||||
#define MICROPY_HW_MCU_NAME "ESP32-C3FH4"
|
||||
|
||||
// Status LED
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_GPIO2)
|
||||
|
||||
#define CIRCUITPY_BOARD_I2C (1)
|
||||
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO6, .sda = &pin_GPIO5}}
|
||||
|
||||
// For entering safe mode
|
||||
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO9)
|
||||
|
||||
#define CIRCUITPY_ESP_USB_SERIAL_JTAG (1)
|
@ -0,0 +1,8 @@
|
||||
CIRCUITPY_CREATOR_ID = 0x01011ACE
|
||||
CIRCUITPY_CREATION_ID = 0x00C30042
|
||||
|
||||
IDF_TARGET = esp32c3
|
||||
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
68
ports/espressif/boards/01space_lcd042_esp32c3/pins.c
Normal file
68
ports/espressif/boards/01space_lcd042_esp32c3/pins.c
Normal file
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2023 Neradoc
|
||||
*
|
||||
* 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 "shared-bindings/board/__init__.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO2) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO5) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO6) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO9) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO20), MP_ROM_PTR(&pin_GPIO20) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO21), MP_ROM_PTR(&pin_GPIO21) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)}
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
6
ports/espressif/boards/01space_lcd042_esp32c3/sdkconfig
Normal file
6
ports/espressif/boards/01space_lcd042_esp32c3/sdkconfig
Normal file
@ -0,0 +1,6 @@
|
||||
# chip is ESP32-C3 FH4
|
||||
#
|
||||
# LWIP
|
||||
#
|
||||
CONFIG_LWIP_LOCAL_HOSTNAME="01Space-LCD042-ESP32C3"
|
||||
# end of LWIP
|
@ -4,7 +4,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
|
||||
|
||||
// S2 Mini Board bottom, right, top-bottom
|
||||
// GPIO0-GPIO14: broken out as a bloc on ESP32-S2FN4R2 SoC
|
||||
// GPIO0-GPIO14: broken out as a block on ESP32-S2FN4R2 SoC
|
||||
// mpconfigboard.h: GPIO0: CIRCUITPY_BOOT_BUTTON
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) }, // RTC_GPIO0,GPIO0
|
||||
@ -57,7 +57,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
// skip GPIO22-GPIO25: not broken out on ESP32-S2FN4R2 SoC
|
||||
// skip GPIO26-GPIO32: SPI Flash & RAM, not broken out on S2 Mini (internal to ESP32-S2FN4R2 SoC?)
|
||||
|
||||
// GPIO33-GPIO40: broken out as a bloc on ESP32-S2FN4R2 SoC, last 2 half of JTAG
|
||||
// GPIO33-GPIO40: broken out as a block on ESP32-S2FN4R2 SoC, last 2 half of JTAG
|
||||
{ MP_ROM_QSTR(MP_QSTR_IO33), MP_ROM_PTR(&pin_GPIO33) },// SPIIO4,GPIO33,FSPIHD
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO33) },// def from Wemos MP
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO33) },// D1 mini pin D2 GPIO4
|
||||
|
@ -193,7 +193,7 @@ static bool pmic_init(void) {
|
||||
}
|
||||
|
||||
// Reg: 12h
|
||||
// Enable EXTEN, DCDC1, LDO2 and LDO3
|
||||
// Enable CTRL_EXTEN, DCDC1, LDO2 and LDO3
|
||||
write_buf[0] = AXP192_DCDC13_LDO23_CTRL;
|
||||
write_buf[1] = AXP192_DCDC13_LDO23_CTRL_EXTEN |
|
||||
AXP192_DCDC13_LDO23_CTRL_LDO3 |
|
||||
|
@ -51,7 +51,7 @@ uint8_t display_init_sequence[] = {
|
||||
0xC5, 0x01, 0x0E, // _VMCTR1 VCOMH = 4V, VOML = -1.1V
|
||||
0x20, 0x00, // _INVOFF
|
||||
0x36, 0x01, 0x18, // _MADCTL bottom to top refresh
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 sycle osc equalie,
|
||||
// 1 clk cycle nonoverlap, 2 cycle gate rise, 3 cycle osc equalie,
|
||||
// fix on VTL
|
||||
0x3A, 0x01, 0x05, // COLMOD - 16bit color
|
||||
0xE0, 0x10, 0x02, 0x1C, 0x07, 0x12, 0x37, 0x32, 0x29, 0x2D, 0x29, 0x25, 0x2B, 0x39, 0x00, 0x01, 0x03, 0x10, // _GMCTRP1 Gamma
|
||||
|
@ -221,7 +221,7 @@ mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t
|
||||
mp_float_t interval, mp_float_t window, mp_int_t minimum_rssi, bool active) {
|
||||
if (self->scan_results != NULL) {
|
||||
if (!shared_module_bleio_scanresults_get_done(self->scan_results)) {
|
||||
mp_raise_bleio_BluetoothError(translate("Scan already in progess. Stop with stop_scan."));
|
||||
mp_raise_bleio_BluetoothError(translate("Scan already in progress. Stop with stop_scan."));
|
||||
}
|
||||
self->scan_results = NULL;
|
||||
}
|
||||
|
@ -248,7 +248,7 @@ STATIC int _discovered_characteristic_cb(uint16_t conn_handle,
|
||||
((chr->properties & BLE_GATT_CHR_PROP_WRITE) != 0 ? CHAR_PROP_WRITE : 0) |
|
||||
((chr->properties & BLE_GATT_CHR_PROP_WRITE_NO_RSP) != 0 ? CHAR_PROP_WRITE_NO_RESPONSE : 0);
|
||||
|
||||
// Call common_hal_bleio_characteristic_construct() to initalize some fields and set up evt handler.
|
||||
// Call common_hal_bleio_characteristic_construct() to initialize some fields and set up evt handler.
|
||||
common_hal_bleio_characteristic_construct(
|
||||
characteristic, service, chr->val_handle, uuid,
|
||||
props, SECURITY_MODE_OPEN, SECURITY_MODE_OPEN,
|
||||
|
@ -119,7 +119,7 @@ void alarm_touch_touchalarm_set_alarm(const bool deep_sleep, const size_t n_alar
|
||||
for (uint8_t i = 1; i <= 14; i++) {
|
||||
if ((touch_channel_mask & 1 << i) != 0) {
|
||||
touch_pad_t touch_channel = (touch_pad_t)i;
|
||||
// intialize touchpad
|
||||
// initialize touchpad
|
||||
peripherals_touch_init(touch_channel);
|
||||
|
||||
// wait for touch data to reset
|
||||
@ -166,7 +166,7 @@ void alarm_touch_touchalarm_prepare_for_deep_sleep(void) {
|
||||
peripherals_touch_never_reset(false);
|
||||
peripherals_touch_reset();
|
||||
|
||||
// intialize touchpad
|
||||
// initialize touchpad
|
||||
peripherals_touch_init(touch_channel);
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32)
|
||||
|
@ -123,7 +123,7 @@ void common_hal_pulseio_pulsein_construct(pulseio_pulsein_obj_t *self, const mcu
|
||||
rmt_config_t config = RMT_DEFAULT_CONFIG_RX(pin->number, channel);
|
||||
config.rx_config.filter_en = true;
|
||||
config.rx_config.idle_threshold = 30000; // 30*3=90ms idle required to register a sequence
|
||||
config.clk_div = 240; // All measurements are divided by 3 to accomodate 65ms pulses
|
||||
config.clk_div = 240; // All measurements are divided by 3 to accommodate 65ms pulses
|
||||
rmt_config(&config);
|
||||
rmt_driver_install(channel, 1000, 0); // TODO: pick a more specific buffer size?
|
||||
|
||||
|
@ -197,7 +197,7 @@ void common_hal_pwmio_pwmout_deinit(pwmio_pwmout_obj_t *self) {
|
||||
if (!taken || self->variable_frequency) {
|
||||
ledc_timer_rst(LEDC_LOW_SPEED_MODE, self->tim_handle.timer_num);
|
||||
reserved_timer_freq[self->tim_handle.timer_num] = 0;
|
||||
// if timer isn't varfreq this will be off aleady
|
||||
// if timer isn't varfreq this will be off already
|
||||
varfreq_timers[self->tim_handle.timer_num] = false;
|
||||
never_reset_tim[self->tim_handle.timer_num] = false;
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ void common_hal_rotaryio_incrementalencoder_construct(rotaryio_incrementalencode
|
||||
.unit = unit,
|
||||
};
|
||||
|
||||
// Reinitalize same unit, CHANNEL_1 with different parameters.
|
||||
// Reinitialize same unit, CHANNEL_1 with different parameters.
|
||||
peripherals_pcnt_reinit(&pcnt_config_channel_1);
|
||||
|
||||
self->pin_a = pin_a->number;
|
||||
|
@ -44,7 +44,7 @@ typedef struct {
|
||||
} i2s_lcd_config_t;
|
||||
|
||||
/**
|
||||
* @brief Initilize i2s lcd driver.
|
||||
* @brief Initialize i2s lcd driver.
|
||||
*
|
||||
* @param config configuration of i2s
|
||||
*
|
||||
|
@ -93,7 +93,7 @@ SECTIONS
|
||||
|
||||
. = ALIGN(4);
|
||||
_etext = .; /* define a global symbol at end of code */
|
||||
_sidata = _etext; /* This is used by the startup in order to initialize the .data secion */
|
||||
_sidata = _etext; /* This is used by the startup in order to initialize the .data section */
|
||||
} >FLASH_FIRMWARE
|
||||
|
||||
/* Uninitialized data section */
|
||||
|
@ -72,7 +72,7 @@ static void ledda_init(void) {
|
||||
// Set clock register to 12 MHz / 64 kHz - 1
|
||||
ledda_write((12000000 / 64000) - 1, LEDDBR);
|
||||
|
||||
// Ensure LED "breathe" effect is diabled
|
||||
// Ensure LED "breathe" effect is disabled
|
||||
ledda_write(0, LEDDBCRR);
|
||||
ledda_write(0, LEDDBCFR);
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
_start:
|
||||
j crt_init
|
||||
# This sentinal ensures that this program is loaded
|
||||
# This sentinel ensures that this program is loaded
|
||||
# to RAM when loaded using dfu-util.
|
||||
#.word 0x17ab0f23
|
||||
#.word 0x10001000
|
||||
|
@ -119,6 +119,7 @@ SRC_SDK := \
|
||||
drivers/lpuart/fsl_lpuart.c \
|
||||
drivers/ocotp/fsl_ocotp.c \
|
||||
drivers/pwm/fsl_pwm.c \
|
||||
drivers/sai/fsl_sai.c \
|
||||
drivers/snvs_hp/fsl_snvs_hp.c \
|
||||
drivers/snvs_lp/fsl_snvs_lp.c \
|
||||
drivers/tempmon/fsl_tempmon.c \
|
||||
@ -136,6 +137,7 @@ SRC_C += \
|
||||
peripherals/mimxrt10xx/$(CHIP_FAMILY)/clocks.c \
|
||||
peripherals/mimxrt10xx/$(CHIP_FAMILY)/periph.c \
|
||||
peripherals/mimxrt10xx/$(CHIP_FAMILY)/pins.c \
|
||||
peripherals/mimxrt10xx/pins.c \
|
||||
reset.c \
|
||||
supervisor/flexspi_nor_flash_ops.c
|
||||
|
||||
@ -146,11 +148,6 @@ SRC_C += \
|
||||
|
||||
endif
|
||||
|
||||
# TODO
|
||||
#ifeq ($(CIRCUITPY_AUDIOBUSIO),1)
|
||||
#SRC_C += peripherals/samd/i2s.c peripherals/samd/$(CHIP_FAMILY)/i2s.c
|
||||
#endif
|
||||
#
|
||||
SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL)) \
|
||||
$(addprefix shared-bindings/, $(SRC_BINDINGS_ENUMS)) \
|
||||
$(addprefix common-hal/, $(SRC_COMMON_HAL))
|
||||
|
@ -35,9 +35,6 @@ void PLACE_IN_ITCM(port_background_task)(void) {
|
||||
}
|
||||
|
||||
void port_background_tick(void) {
|
||||
#if CIRCUITPY_AUDIOIO || CIRCUITPY_AUDIOBUSIO
|
||||
audio_dma_background();
|
||||
#endif
|
||||
}
|
||||
|
||||
void port_start_background_task(void) {
|
||||
|
@ -57,5 +57,9 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_WSEL), MP_ROM_PTR(&pin_GPIO_06) }, // D10
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_BCLK), MP_ROM_PTR(&pin_GPIO_07) }, // D9
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2S_DOUT), MP_ROM_PTR(&pin_GPIO_04) }, // D12
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
|
||||
|
154
ports/mimxrt10xx/common-hal/audiobusio/I2SOut.c
Normal file
154
ports/mimxrt10xx/common-hal/audiobusio/I2SOut.c
Normal file
@ -0,0 +1,154 @@
|
||||
/*
|
||||
* This file is part of the MicroPython 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 <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "mpconfigport.h"
|
||||
|
||||
// Some boards don't implement I2SOut, so suppress any routines from here.
|
||||
#if CIRCUITPY_AUDIOBUSIO_I2SOUT
|
||||
|
||||
#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/audiocore/RawSample.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
// Where required we use identifier names that are required by NXP's
|
||||
// API, even though they do not conform to the naming standards that Adafruit
|
||||
// strives to adhere to. https://www.adafruit.com/blacklivesmatter
|
||||
#include "sdk/drivers/sai/fsl_sai.h"
|
||||
|
||||
STATIC void config_periph_pin(const mcu_periph_obj_t *periph) {
|
||||
if (!periph) {
|
||||
return;
|
||||
}
|
||||
if (periph->pin->mux_reg) {
|
||||
IOMUXC_SetPinMux(
|
||||
periph->pin->mux_reg, periph->mux_mode,
|
||||
periph->input_reg, periph->input_idx,
|
||||
0,
|
||||
1);
|
||||
}
|
||||
|
||||
IOMUXC_SetPinConfig(0, 0, 0, 0,
|
||||
periph->pin->cfg_reg,
|
||||
IOMUXC_SW_PAD_CTL_PAD_HYS(0)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_PUS(0)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_PUE(0)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_PKE(1)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_ODE(0)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_SPEED(2)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_DSE(4)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_SRE(0));
|
||||
}
|
||||
|
||||
// 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) {
|
||||
|
||||
int instance = -1;
|
||||
const mcu_periph_obj_t *bclk_periph = find_pin_function(mcu_sai_tx_bclk_list, bit_clock, &instance, MP_QSTR_bit_clock);
|
||||
const mcu_periph_obj_t *sync_periph = find_pin_function(mcu_sai_tx_sync_list, word_select, &instance, MP_QSTR_word_select);
|
||||
const mcu_periph_obj_t *data_periph = find_pin_function(mcu_sai_tx_data0_list, data, &instance, MP_QSTR_data);
|
||||
|
||||
sai_transceiver_t config;
|
||||
SAI_GetClassicI2SConfig(&config, 16, kSAI_Stereo, 1);
|
||||
config.syncMode = kSAI_ModeAsync;
|
||||
config.fifo.fifoPacking = kSAI_FifoPackingDisabled;
|
||||
// These identifier names are required by NXP's API, even though they do
|
||||
// not conform to the naming standards that Adafruit strives to adhere to.
|
||||
// https://www.adafruit.com/blacklivesmatter
|
||||
config.masterSlave = kSAI_Master;
|
||||
port_i2s_initialize(&self->i2s, instance, &config);
|
||||
|
||||
self->bit_clock = bit_clock;
|
||||
self->word_select = word_select;
|
||||
self->data = data;
|
||||
claim_pin(bit_clock);
|
||||
claim_pin(word_select);
|
||||
claim_pin(data);
|
||||
config_periph_pin(data_periph);
|
||||
config_periph_pin(sync_periph);
|
||||
config_periph_pin(bclk_periph);
|
||||
}
|
||||
|
||||
bool common_hal_audiobusio_i2sout_deinited(audiobusio_i2sout_obj_t *self) {
|
||||
return port_i2s_deinited(&self->i2s);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_deinit(audiobusio_i2sout_obj_t *self) {
|
||||
if (common_hal_audiobusio_i2sout_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
|
||||
port_i2s_deinit(&self->i2s);
|
||||
|
||||
common_hal_reset_pin(self->bit_clock);
|
||||
self->bit_clock = NULL;
|
||||
|
||||
common_hal_reset_pin(self->word_select);
|
||||
self->word_select = NULL;
|
||||
|
||||
common_hal_reset_pin(self->data);
|
||||
self->data = NULL;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
port_i2s_play(&self->i2s, sample, loop);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_pause(audiobusio_i2sout_obj_t *self) {
|
||||
port_i2s_pause(&self->i2s);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_resume(audiobusio_i2sout_obj_t *self) {
|
||||
port_i2s_resume(&self->i2s);
|
||||
}
|
||||
|
||||
bool common_hal_audiobusio_i2sout_get_paused(audiobusio_i2sout_obj_t *self) {
|
||||
return port_i2s_get_paused(&self->i2s);
|
||||
}
|
||||
|
||||
void common_hal_audiobusio_i2sout_stop(audiobusio_i2sout_obj_t *self) {
|
||||
port_i2s_stop(&self->i2s);
|
||||
}
|
||||
|
||||
bool common_hal_audiobusio_i2sout_get_playing(audiobusio_i2sout_obj_t *self) {
|
||||
return port_i2s_get_playing(&self->i2s);
|
||||
}
|
||||
|
||||
#endif // CIRCUITPY_AUDIOBUSIO_I2SOUT
|
47
ports/mimxrt10xx/common-hal/audiobusio/I2SOut.h
Normal file
47
ports/mimxrt10xx/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) 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.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "supervisor/background_callback.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "common-hal/audiobusio/__init__.h"
|
||||
|
||||
// Some boards don't implement I2SOut, so suppress any routines from here.
|
||||
#if CIRCUITPY_AUDIOBUSIO_I2SOUT
|
||||
|
||||
#include "sdk/drivers/sai/fsl_sai.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
i2s_t i2s;
|
||||
const mcu_pin_obj_t *bit_clock;
|
||||
const mcu_pin_obj_t *word_select;
|
||||
const mcu_pin_obj_t *data;
|
||||
} audiobusio_i2sout_obj_t;
|
||||
|
||||
#endif
|
0
ports/mimxrt10xx/common-hal/audiobusio/PDMIn.c
Normal file
0
ports/mimxrt10xx/common-hal/audiobusio/PDMIn.c
Normal file
0
ports/mimxrt10xx/common-hal/audiobusio/PDMIn.h
Normal file
0
ports/mimxrt10xx/common-hal/audiobusio/PDMIn.h
Normal file
417
ports/mimxrt10xx/common-hal/audiobusio/__init__.c
Normal file
417
ports/mimxrt10xx/common-hal/audiobusio/__init__.c
Normal file
@ -0,0 +1,417 @@
|
||||
/*
|
||||
* This file is part of the MicroPython 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 <string.h>
|
||||
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "common-hal/audiobusio/__init__.h"
|
||||
#include "shared-module/audiocore/__init__.h"
|
||||
|
||||
#define SAI_CLOCK_SOURCE_SELECT (2U)
|
||||
#define SAI_CLOCK_SOURCE_DIVIDER (63U)
|
||||
#define SAI_CLOCK_SOURCE_PRE_DIVIDER (0U)
|
||||
|
||||
#define SAI_CLOCK_FREQ (CLOCK_GetFreq(kCLOCK_AudioPllClk) / (SAI_CLOCK_SOURCE_DIVIDER + 1U) / \
|
||||
(SAI_CLOCK_SOURCE_PRE_DIVIDER + 1U))
|
||||
|
||||
#define AUDIO_BUFFER_FRAME_COUNT (128) // in uint32_t; there are 4, giving 2048 bytes. In all they hold 10ms @ stereo 16-bit 48kHz before all buffers drain
|
||||
|
||||
/*
|
||||
* AUDIO PLL setting: Frequency = Fref * (DIV_SELECT + NUM / DENOM)
|
||||
* = 24 * (32 + 77/100)
|
||||
* = 786.48 MHz
|
||||
*/
|
||||
const clock_audio_pll_config_t audioPllConfig = {
|
||||
.loopDivider = 32, /* PLL loop divider. Valid range for DIV_SELECT divider value: 27~54. */
|
||||
.postDivider = 1, /* Divider after the PLL, should only be 1, 2, 4, 8, 16. */
|
||||
.numerator = 77, /* 30 bit numerator of fractional loop divider. */
|
||||
.denominator = 100, /* 30 bit denominator of fractional loop divider */
|
||||
};
|
||||
|
||||
static I2S_Type *const i2s_instances[] = I2S_BASE_PTRS;
|
||||
static uint8_t i2s_in_use;
|
||||
|
||||
static I2S_Type *SAI_GetPeripheral(int idx) {
|
||||
if (idx < 0 || idx >= (int)MP_ARRAY_SIZE(i2s_instances)) {
|
||||
return NULL;
|
||||
}
|
||||
return i2s_instances[idx];
|
||||
}
|
||||
|
||||
static int SAI_GetInstance(I2S_Type *peripheral) {
|
||||
for (size_t i = 0; i < MP_ARRAY_SIZE(i2s_instances); i++) { if (peripheral == i2s_instances[i]) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static bool i2s_clock_off(I2S_Type *peripheral) {
|
||||
int index = SAI_GetInstance(peripheral);
|
||||
switch (index) {
|
||||
#if defined(SAI0)
|
||||
case 0:
|
||||
CLOCK_DisableClock(kCLOCK_Sai0);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI1)
|
||||
case 1:
|
||||
CLOCK_DisableClock(kCLOCK_Sai1);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI2)
|
||||
case 2:
|
||||
CLOCK_DisableClock(kCLOCK_Sai2);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI3)
|
||||
case 3:
|
||||
CLOCK_DisableClock(kCLOCK_Sai3);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI4)
|
||||
case 4:
|
||||
CLOCK_DisableClock(kCLOCK_Sai4);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI5)
|
||||
case 5:
|
||||
CLOCK_DisableClock(kCLOCK_Sai5);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI6)
|
||||
case 6:
|
||||
CLOCK_DisableClock(kCLOCK_Sai6);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI7)
|
||||
case 7:
|
||||
CLOCK_DisableClock(kCLOCK_Sai7);
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool i2s_clocking(I2S_Type *peripheral) {
|
||||
int index = SAI_GetInstance(peripheral);
|
||||
switch (index) {
|
||||
#if defined(SAI0)
|
||||
case 0:
|
||||
CLOCK_SetDiv(kCLOCK_Sai0PreDiv, SAI_CLOCK_SOURCE_PRE_DIVIDER);
|
||||
CLOCK_SetDiv(kCLOCK_Sai0Div, SAI_CLOCK_SOURCE_DIVIDER);
|
||||
CLOCK_SetMux(kCLOCK_Sai0Mux, SAI_CLOCK_SOURCE_SELECT);
|
||||
CLOCK_EnableClock(kCLOCK_Sai0);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI1)
|
||||
case 1:
|
||||
CLOCK_SetDiv(kCLOCK_Sai1PreDiv, SAI_CLOCK_SOURCE_PRE_DIVIDER);
|
||||
CLOCK_SetDiv(kCLOCK_Sai1Div, SAI_CLOCK_SOURCE_DIVIDER);
|
||||
CLOCK_SetMux(kCLOCK_Sai1Mux, SAI_CLOCK_SOURCE_SELECT);
|
||||
CLOCK_EnableClock(kCLOCK_Sai1);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI2)
|
||||
case 2:
|
||||
CLOCK_SetDiv(kCLOCK_Sai2PreDiv, SAI_CLOCK_SOURCE_PRE_DIVIDER);
|
||||
CLOCK_SetDiv(kCLOCK_Sai2Div, SAI_CLOCK_SOURCE_DIVIDER);
|
||||
CLOCK_SetMux(kCLOCK_Sai2Mux, SAI_CLOCK_SOURCE_SELECT);
|
||||
CLOCK_EnableClock(kCLOCK_Sai2);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI3)
|
||||
case 3:
|
||||
CLOCK_SetDiv(kCLOCK_Sai3PreDiv, SAI_CLOCK_SOURCE_PRE_DIVIDER);
|
||||
CLOCK_SetDiv(kCLOCK_Sai3Div, SAI_CLOCK_SOURCE_DIVIDER);
|
||||
CLOCK_SetMux(kCLOCK_Sai3Mux, SAI_CLOCK_SOURCE_SELECT);
|
||||
CLOCK_EnableClock(kCLOCK_Sai3);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI4)
|
||||
case 4:
|
||||
CLOCK_SetDiv(kCLOCK_Sai4PreDiv, SAI_CLOCK_SOURCE_PRE_DIVIDER);
|
||||
CLOCK_SetDiv(kCLOCK_Sai4Div, SAI_CLOCK_SOURCE_DIVIDER);
|
||||
CLOCK_SetMux(kCLOCK_Sai4Mux, SAI_CLOCK_SOURCE_SELECT);
|
||||
CLOCK_EnableClock(kCLOCK_Sai4);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI5)
|
||||
case 5:
|
||||
CLOCK_SetDiv(kCLOCK_Sai5PreDiv, SAI_CLOCK_SOURCE_PRE_DIVIDER);
|
||||
CLOCK_SetDiv(kCLOCK_Sai5Div, SAI_CLOCK_SOURCE_DIVIDER);
|
||||
CLOCK_SetMux(kCLOCK_Sai5Mux, SAI_CLOCK_SOURCE_SELECT);
|
||||
CLOCK_EnableClock(kCLOCK_Sai5);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI6)
|
||||
case 6:
|
||||
CLOCK_SetDiv(kCLOCK_Sai6PreDiv, SAI_CLOCK_SOURCE_PRE_DIVIDER);
|
||||
CLOCK_SetDiv(kCLOCK_Sai6Div, SAI_CLOCK_SOURCE_DIVIDER);
|
||||
CLOCK_SetMux(kCLOCK_Sai6Mux, SAI_CLOCK_SOURCE_SELECT);
|
||||
CLOCK_EnableClock(kCLOCK_Sai6);
|
||||
return true;
|
||||
#endif
|
||||
#if defined(SAI7)
|
||||
case 7:
|
||||
CLOCK_SetDiv(kCLOCK_Sai7PreDiv, SAI_CLOCK_SOURCE_PRE_DIVIDER);
|
||||
CLOCK_SetDiv(kCLOCK_Sai7Div, SAI_CLOCK_SOURCE_DIVIDER);
|
||||
CLOCK_SetMux(kCLOCK_Sai7Mux, SAI_CLOCK_SOURCE_SELECT);
|
||||
CLOCK_EnableClock(kCLOCK_Sai7);
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static bool i2s_queue_available(i2s_t *self) {
|
||||
return !self->handle.saiQueue[self->handle.queueUser].data;
|
||||
}
|
||||
|
||||
static void i2s_fill_buffer(i2s_t *self) {
|
||||
if (!self->peripheral) {
|
||||
return;
|
||||
}
|
||||
while (i2s_queue_available(self)) {
|
||||
uint32_t *buffer = self->buffers[self->buffer_idx];
|
||||
uint32_t *ptr = buffer, *end = buffer + AUDIO_BUFFER_FRAME_COUNT;
|
||||
self->buffer_idx = (self->buffer_idx + 1) % SAI_XFER_QUEUE_SIZE;
|
||||
|
||||
while (self->playing && !self->paused && ptr < end) {
|
||||
if (self->sample_data == self->sample_end) {
|
||||
if (self->stopping) {
|
||||
// non-looping sample, previously returned GET_BUFFER_DONE
|
||||
self->playing = false;
|
||||
break;
|
||||
}
|
||||
uint32_t sample_buffer_length;
|
||||
audioio_get_buffer_result_t get_buffer_result =
|
||||
audiosample_get_buffer(self->sample, false, 0,
|
||||
&self->sample_data, &sample_buffer_length);
|
||||
self->sample_end = self->sample_data + sample_buffer_length;
|
||||
if (get_buffer_result == GET_BUFFER_DONE) {
|
||||
if (self->loop) {
|
||||
audiosample_reset_buffer(self->sample, false, 0);
|
||||
} else {
|
||||
self->stopping = true;
|
||||
}
|
||||
}
|
||||
if (get_buffer_result == GET_BUFFER_ERROR || sample_buffer_length == 0) {
|
||||
self->stopping = true;
|
||||
}
|
||||
}
|
||||
size_t input_bytecount = self->sample_end - self->sample_data;
|
||||
size_t bytes_per_input_frame = self->channel_count * self->bytes_per_sample;
|
||||
size_t framecount = MIN((size_t)(end - ptr), input_bytecount / bytes_per_input_frame);
|
||||
|
||||
#define SAMPLE_TYPE(is_signed, channel_count, bytes_per_sample) ((is_signed) | ((channel_count) << 1) | ((bytes_per_sample) << 3))
|
||||
|
||||
switch (SAMPLE_TYPE(self->samples_signed, self->channel_count, self->bytes_per_sample)) {
|
||||
|
||||
case SAMPLE_TYPE(true, 2, 2):
|
||||
memcpy(ptr, self->sample_data, 4 * framecount);
|
||||
break;
|
||||
|
||||
case SAMPLE_TYPE(false, 2, 2):
|
||||
audiosample_convert_u16s_s16s((int16_t *)ptr, (uint16_t *)(void *)self->sample_data, framecount);
|
||||
break;
|
||||
|
||||
case SAMPLE_TYPE(true, 1, 2):
|
||||
audiosample_convert_s16m_s16s((int16_t *)ptr, (int16_t *)(void *)self->sample_data, framecount);
|
||||
break;
|
||||
|
||||
case SAMPLE_TYPE(false, 1, 2):
|
||||
audiosample_convert_u16m_s16s((int16_t *)ptr, (uint16_t *)(void *)self->sample_data, framecount);
|
||||
break;
|
||||
|
||||
case SAMPLE_TYPE(true, 2, 1):
|
||||
audiosample_convert_s8s_s16s((int16_t *)ptr, (int8_t *)(void *)self->sample_data, framecount);
|
||||
memcpy(ptr, self->sample_data, 4 * framecount);
|
||||
break;
|
||||
|
||||
case SAMPLE_TYPE(false, 2, 1):
|
||||
audiosample_convert_u8s_s16s((int16_t *)ptr, (uint8_t *)(void *)self->sample_data, framecount);
|
||||
break;
|
||||
|
||||
case SAMPLE_TYPE(true, 1, 1):
|
||||
audiosample_convert_s8m_s16s((int16_t *)ptr, (int8_t *)(void *)self->sample_data, framecount);
|
||||
break;
|
||||
|
||||
case SAMPLE_TYPE(false, 1, 1):
|
||||
audiosample_convert_u8m_s16s((int16_t *)ptr, (uint8_t *)(void *)self->sample_data, framecount);
|
||||
break;
|
||||
}
|
||||
self->sample_data += bytes_per_input_frame * framecount; // in bytes
|
||||
ptr += framecount; // in frames
|
||||
}
|
||||
// Fill any remaining portion of the buffer with 'no sound'
|
||||
memset(ptr, 0, (end - ptr) * sizeof(uint32_t));
|
||||
sai_transfer_t xfer = {
|
||||
.data = (uint8_t *)buffer,
|
||||
.dataSize = AUDIO_BUFFER_FRAME_COUNT * sizeof(uint32_t),
|
||||
};
|
||||
int r = SAI_TransferSendNonBlocking(self->peripheral, &self->handle, &xfer);
|
||||
if (r != kStatus_Success) {
|
||||
mp_printf(&mp_plat_print, "transfer returned %d\n", (int)r);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void i2s_callback_fun(void *self_in) {
|
||||
i2s_t *self = self_in;
|
||||
i2s_fill_buffer(self);
|
||||
}
|
||||
|
||||
static void i2s_transfer_callback(I2S_Type *base, sai_handle_t *handle, status_t status, void *self_in) {
|
||||
i2s_t *self = self_in;
|
||||
if (status == kStatus_SAI_TxIdle) {
|
||||
// a block has been finished
|
||||
background_callback_add(&self->callback, i2s_callback_fun, self_in);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void port_i2s_initialize(i2s_t *self, int instance, sai_transceiver_t *config) {
|
||||
if (!i2s_in_use) {
|
||||
// need to set audio pll up!
|
||||
|
||||
/* DeInit Audio PLL. */
|
||||
CLOCK_DeinitAudioPll();
|
||||
/* Bypass Audio PLL. */
|
||||
CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllAudio, 1);
|
||||
/* Set divider for Audio PLL. */
|
||||
CCM_ANALOG->MISC2 &= ~CCM_ANALOG_MISC2_AUDIO_DIV_LSB_MASK;
|
||||
CCM_ANALOG->MISC2 &= ~CCM_ANALOG_MISC2_AUDIO_DIV_MSB_MASK;
|
||||
/* Enable Audio PLL output. */
|
||||
CCM_ANALOG->PLL_AUDIO |= CCM_ANALOG_PLL_AUDIO_ENABLE_MASK;
|
||||
|
||||
CLOCK_InitAudioPll(&audioPllConfig);
|
||||
}
|
||||
|
||||
I2S_Type *peripheral = SAI_GetPeripheral(instance);
|
||||
if (!peripheral) {
|
||||
mp_raise_ValueError_varg(translate("Invalid %q"), MP_QSTR_I2SOut);
|
||||
}
|
||||
if (i2s_in_use & (1 << instance)) {
|
||||
mp_raise_ValueError_varg(translate("%q in use"), MP_QSTR_I2SOut);
|
||||
}
|
||||
if (!i2s_clocking(peripheral)) {
|
||||
mp_raise_ValueError_varg(translate("Invalid %q"), MP_QSTR_I2SOut);
|
||||
}
|
||||
for (size_t i = 0; i < MP_ARRAY_SIZE(self->buffers); i++) {
|
||||
self->buffers[i] = m_malloc(AUDIO_BUFFER_FRAME_COUNT * sizeof(uint32_t), false);
|
||||
}
|
||||
self->peripheral = peripheral;
|
||||
SAI_Init(self->peripheral);
|
||||
SAI_TransferTxCreateHandle(peripheral, &self->handle, i2s_transfer_callback, (void *)self);
|
||||
SAI_TransferTxSetConfig(peripheral, &self->handle, config);
|
||||
self->sample_rate = 0;
|
||||
i2s_in_use |= (1 << instance);
|
||||
}
|
||||
|
||||
bool port_i2s_deinited(i2s_t *self) {
|
||||
return !self->peripheral;
|
||||
}
|
||||
|
||||
void port_i2s_deinit(i2s_t *self) {
|
||||
if (port_i2s_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
SAI_TransferAbortSend(self->peripheral, &self->handle);
|
||||
i2s_clock_off(self->peripheral);
|
||||
i2s_in_use &= ~(1 << SAI_GetInstance(self->peripheral));
|
||||
if (!i2s_in_use) {
|
||||
CCM_ANALOG->PLL_AUDIO = CCM_ANALOG_PLL_AUDIO_BYPASS_MASK | CCM_ANALOG_PLL_AUDIO_POWERDOWN_MASK | CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC(kCLOCK_PllClkSrc24M);
|
||||
}
|
||||
self->peripheral = NULL;
|
||||
for (size_t i = 0; i < MP_ARRAY_SIZE(self->buffers); i++) {
|
||||
self->buffers[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void port_i2s_play(i2s_t *self, mp_obj_t sample, bool loop) {
|
||||
self->sample = sample;
|
||||
self->loop = loop;
|
||||
self->bytes_per_sample = audiosample_bits_per_sample(sample) / 8;
|
||||
self->channel_count = audiosample_channel_count(sample);
|
||||
uint32_t sample_rate = audiosample_sample_rate(sample);
|
||||
if (sample_rate != self->sample_rate) {
|
||||
SAI_TxSetBitClockRate(self->peripheral, SAI_CLOCK_FREQ, sample_rate, 16, 2);
|
||||
self->sample_rate = sample_rate;
|
||||
}
|
||||
bool single_buffer;
|
||||
bool samples_signed;
|
||||
uint32_t max_buffer_length;
|
||||
uint8_t spacing;
|
||||
audiosample_get_buffer_structure(sample, false, &single_buffer, &samples_signed,
|
||||
&max_buffer_length, &spacing);
|
||||
self->samples_signed = samples_signed;
|
||||
self->playing = true;
|
||||
self->paused = false;
|
||||
self->stopping = false;
|
||||
self->sample_data = self->sample_end = NULL;
|
||||
|
||||
audiosample_reset_buffer(self->sample, false, 0);
|
||||
|
||||
// TODO
|
||||
#if 0
|
||||
uint32_t sample_rate = audiosample_sample_rate(sample);
|
||||
if (sample_rate != self->i2s_config.sample_rate) {
|
||||
CHECK_ESP_RESULT(i2s_set_sample_rates(self->instance, audiosample_sample_rate(sample)));
|
||||
self->i2s_config.sample_rate = sample_rate;
|
||||
}
|
||||
#endif
|
||||
background_callback_add(&self->callback, i2s_callback_fun, self);
|
||||
}
|
||||
|
||||
bool port_i2s_get_playing(i2s_t *self) {
|
||||
return self->playing;
|
||||
}
|
||||
|
||||
bool port_i2s_get_paused(i2s_t *self) {
|
||||
return self->paused;
|
||||
}
|
||||
|
||||
void port_i2s_stop(i2s_t *self) {
|
||||
self->sample = NULL;
|
||||
self->paused = false;
|
||||
self->playing = false;
|
||||
self->stopping = false;
|
||||
}
|
||||
|
||||
void port_i2s_pause(i2s_t *self) {
|
||||
self->paused = true;
|
||||
}
|
||||
|
||||
void port_i2s_resume(i2s_t *self) {
|
||||
self->paused = false;
|
||||
}
|
||||
|
||||
void i2s_reset() {
|
||||
// this port relies on object finalizers for reset
|
||||
}
|
59
ports/mimxrt10xx/common-hal/audiobusio/__init__.h
Normal file
59
ports/mimxrt10xx/common-hal/audiobusio/__init__.h
Normal file
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* This file is part of the MicroPython 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.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "sdk/drivers/sai/fsl_sai.h"
|
||||
#include "py/obj.h"
|
||||
|
||||
#include "supervisor/background_callback.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
I2S_Type *peripheral;
|
||||
sai_handle_t handle;
|
||||
mp_obj_t sample;
|
||||
uint32_t *buffers[SAI_XFER_QUEUE_SIZE];
|
||||
uint8_t *sample_data, *sample_end;
|
||||
background_callback_t callback;
|
||||
bool playing, paused, loop, stopping;
|
||||
bool samples_signed;
|
||||
uint8_t channel_count, bytes_per_sample;
|
||||
uint8_t buffer_idx;
|
||||
uint32_t sample_rate;
|
||||
} i2s_t;
|
||||
|
||||
|
||||
void i2s_reset(void);
|
||||
void port_i2s_initialize(i2s_t *self, int instance, sai_transceiver_t *config);
|
||||
void port_i2s_deinit(i2s_t *self);
|
||||
bool port_i2s_deinited(i2s_t *self);
|
||||
void port_i2s_play(i2s_t *self, mp_obj_t sample, bool loop);
|
||||
void port_i2s_stop(i2s_t *self);
|
||||
bool port_i2s_get_playing(i2s_t *self);
|
||||
bool port_i2s_get_paused(i2s_t *self);
|
||||
void port_i2s_pause(i2s_t *self);
|
||||
void port_i2s_resume(i2s_t *self);
|
@ -40,7 +40,7 @@
|
||||
|
||||
#define IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5 5U
|
||||
|
||||
STATIC void pin_config(const mcu_pin_obj_t *pin, bool open_drain, digitalio_pull_t pull) {
|
||||
void pin_config(const mcu_pin_obj_t *pin, bool open_drain, digitalio_pull_t pull) {
|
||||
IOMUXC_SetPinConfig(0, 0, 0, 0, pin->cfg_reg,
|
||||
IOMUXC_SW_PAD_CTL_PAD_HYS(1)
|
||||
| IOMUXC_SW_PAD_CTL_PAD_PUS((pull == PULL_UP) ? 2 : 0)
|
||||
|
@ -40,4 +40,6 @@ typedef struct {
|
||||
digitalio_pull_t pull;
|
||||
} digitalio_digitalinout_obj_t;
|
||||
|
||||
void pin_config(const mcu_pin_obj_t *pin, bool open_drain, digitalio_pull_t pull);
|
||||
|
||||
#endif // MICROPY_INCLUDED_MIMXRT10XX_COMMON_HAL_DIGITALIO_DIGITALINOUT_H
|
||||
|
@ -25,8 +25,11 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
#include "py/runtime.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
|
||||
#include "py/gc.h"
|
||||
|
||||
STATIC bool claimed_pins[IOMUXC_SW_PAD_CTL_PAD_COUNT];
|
||||
STATIC bool never_reset_pins[IOMUXC_SW_PAD_CTL_PAD_COUNT];
|
||||
@ -84,6 +87,7 @@ void common_hal_reset_pin(const mcu_pin_obj_t *pin) {
|
||||
return;
|
||||
}
|
||||
|
||||
disable_pin_change_interrupt(pin);
|
||||
never_reset_pins[pin->mux_idx] = false;
|
||||
claimed_pins[pin->mux_idx] = false;
|
||||
*(uint32_t *)pin->mux_reg = pin->mux_reset;
|
||||
@ -116,3 +120,19 @@ void claim_pin(const mcu_pin_obj_t *pin) {
|
||||
void common_hal_mcu_pin_reset_number(uint8_t pin_no) {
|
||||
common_hal_reset_pin((mcu_pin_obj_t *)(mcu_pin_globals.map.table[pin_no].value));
|
||||
}
|
||||
|
||||
const mcu_periph_obj_t *find_pin_function_sz(const mcu_periph_obj_t *list, size_t sz, const mcu_pin_obj_t *pin, int *instance, uint16_t name) {
|
||||
if (!pin) {
|
||||
return NULL;
|
||||
}
|
||||
for (size_t i = 0; i < sz; i++) {
|
||||
if (*instance != -1 && *instance != list[i].bank_idx) {
|
||||
continue;
|
||||
}
|
||||
if (pin == list[i].pin) {
|
||||
*instance = list[i].bank_idx;
|
||||
return &list[i];
|
||||
}
|
||||
}
|
||||
mp_raise_ValueError_varg(translate("Invalid %q pin"), name);
|
||||
}
|
||||
|
@ -25,11 +25,9 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_MIMXRT10XX_COMMON_HAL_MICROCONTROLLER_PIN_H
|
||||
#define MICROPY_INCLUDED_MIMXRT10XX_COMMON_HAL_MICROCONTROLLER_PIN_H
|
||||
|
||||
#include <assert.h>
|
||||
#pragma once
|
||||
|
||||
#include "periph.h"
|
||||
#include "pins.h"
|
||||
|
||||
void reset_all_pins(void);
|
||||
@ -45,4 +43,8 @@ extern const mcu_pin_obj_t *mimxrt10xx_reset_forbidden_pins[];
|
||||
// the port-default reset behavior.
|
||||
extern bool mimxrt10xx_board_reset_pin_number(const mcu_pin_obj_t *pin);
|
||||
|
||||
#endif // MICROPY_INCLUDED_MIMXRT10XX_COMMON_HAL_MICROCONTROLLER_PIN_H
|
||||
// Find the entry in the peripheral list for this pin. If instance is (-1), any instance (bank_idx) may be used. Otherwise, the bank_idx must match the instance.
|
||||
// If instance was -1, and the function succeeds, then instance is updated with the new bank_idx.
|
||||
// If the pin is NULL then NULL is always returned. But if it was not NULL, and no match was found, then a ValueError is raised.
|
||||
const mcu_periph_obj_t *find_pin_function_sz(const mcu_periph_obj_t *list, size_t sz, const mcu_pin_obj_t *pin, int *instance, uint16_t name);
|
||||
#define find_pin_function(list, pin, instance, name) (find_pin_function_sz((list), MP_ARRAY_SIZE((list)), (pin), (instance), (name)))
|
||||
|
@ -64,7 +64,7 @@ void PLACE_IN_ITCM(common_hal_neopixel_write)(const digitalio_digitalinout_obj_t
|
||||
const uint32_t pin = digitalinout->pin->number;
|
||||
|
||||
__disable_irq();
|
||||
// Use DWT in debug core. Useable when interrupts disabled, as opposed to Systick->VAL
|
||||
// Use DWT in debug core. Usable when interrupts disabled, as opposed to Systick->VAL
|
||||
DWT->CYCCNT = 0;
|
||||
|
||||
for (;;) {
|
||||
|
87
ports/mimxrt10xx/common-hal/rotaryio/IncrementalEncoder.c
Normal file
87
ports/mimxrt10xx/common-hal/rotaryio/IncrementalEncoder.c
Normal file
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Nick Moore for Adafruit Industries
|
||||
* Copyright (c) 2023 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 "common-hal/digitalio/DigitalInOut.h"
|
||||
#include "common-hal/rotaryio/IncrementalEncoder.h"
|
||||
#include "shared-module/rotaryio/IncrementalEncoder.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "shared-bindings/rotaryio/IncrementalEncoder.h"
|
||||
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "sdk/drivers/igpio/fsl_gpio.h"
|
||||
static void encoder_change(void *self_in) {
|
||||
rotaryio_incrementalencoder_obj_t *self = self_in;
|
||||
|
||||
bool value_a = GPIO_PinRead(self->pin_a->gpio, self->pin_a->number);
|
||||
bool value_b = GPIO_PinRead(self->pin_b->gpio, self->pin_b->number);
|
||||
uint8_t new_state = (value_a << 1) | value_b;
|
||||
shared_module_softencoder_state_update(self, new_state);
|
||||
}
|
||||
|
||||
void common_hal_rotaryio_incrementalencoder_construct(rotaryio_incrementalencoder_obj_t *self,
|
||||
const mcu_pin_obj_t *pin_a, const mcu_pin_obj_t *pin_b) {
|
||||
|
||||
self->pin_a = pin_a;
|
||||
self->pin_b = pin_b;
|
||||
|
||||
// GPIO is always IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5 until proven otherwise
|
||||
#define IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5 5U
|
||||
IOMUXC_SetPinMux(pin_a->mux_reg, IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5, 0, 0, 0, 0);
|
||||
IOMUXC_SetPinMux(pin_b->mux_reg, IOMUXC_SW_MUX_CTL_PAD_MUX_MODE_ALT5, 0, 0, 0, 0);
|
||||
|
||||
const gpio_pin_config_t config = { kGPIO_DigitalInput, 0, kGPIO_IntRisingOrFallingEdge };
|
||||
GPIO_PinInit(pin_a->gpio, pin_a->number, &config);
|
||||
GPIO_PinInit(pin_b->gpio, pin_b->number, &config);
|
||||
|
||||
enable_pin_change_interrupt(pin_a, encoder_change, self);
|
||||
enable_pin_change_interrupt(pin_b, encoder_change, self);
|
||||
|
||||
pin_config(pin_a, false, PULL_UP);
|
||||
pin_config(pin_b, false, PULL_UP);
|
||||
|
||||
claim_pin(pin_a);
|
||||
claim_pin(pin_b);
|
||||
}
|
||||
|
||||
bool common_hal_rotaryio_incrementalencoder_deinited(rotaryio_incrementalencoder_obj_t *self) {
|
||||
return !self->pin_a;
|
||||
}
|
||||
|
||||
void common_hal_rotaryio_incrementalencoder_deinit(rotaryio_incrementalencoder_obj_t *self) {
|
||||
if (common_hal_rotaryio_incrementalencoder_deinited(self)) {
|
||||
return;
|
||||
}
|
||||
disable_pin_change_interrupt(self->pin_a);
|
||||
disable_pin_change_interrupt(self->pin_b);
|
||||
|
||||
common_hal_reset_pin(self->pin_a);
|
||||
common_hal_reset_pin(self->pin_b);
|
||||
|
||||
self->pin_a = NULL;
|
||||
self->pin_b = NULL;
|
||||
}
|
44
ports/mimxrt10xx/common-hal/rotaryio/IncrementalEncoder.h
Normal file
44
ports/mimxrt10xx/common-hal/rotaryio/IncrementalEncoder.h
Normal file
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2018 Scott Shawcroft for Adafruit Industries
|
||||
* Copyright (c) 2023 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.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
#include "py/obj.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
const mcu_pin_obj_t *pin_a, *pin_b;
|
||||
uint8_t state; // <old A><old B>
|
||||
int8_t sub_count; // count intermediate transitions between detents
|
||||
int8_t divisor; // Number of quadrature edges required per count
|
||||
mp_int_t position;
|
||||
} rotaryio_incrementalencoder_obj_t;
|
||||
|
||||
|
||||
void incrementalencoder_interrupt_handler(uint8_t channel);
|
0
ports/mimxrt10xx/common-hal/rotaryio/__init__.c
Normal file
0
ports/mimxrt10xx/common-hal/rotaryio/__init__.c
Normal file
0
ports/mimxrt10xx/common-hal/rotaryio/__init__.h
Normal file
0
ports/mimxrt10xx/common-hal/rotaryio/__init__.h
Normal file
@ -11,8 +11,12 @@ CIRCUITPY_TUSB_MEM_ALIGN = 32
|
||||
|
||||
INTERNAL_FLASH_FILESYSTEM = 1
|
||||
|
||||
CIRCUITPY_AUDIOBUSIO = 1
|
||||
CIRCUITPY_AUDIOBUSIO_PDMIN = 0
|
||||
CIRCUITPY_AUDIOCORE = 1
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
CIRCUITPY_AUDIOMIXER = 1
|
||||
CIRCUITPY_AUDIOMP3 = 1
|
||||
CIRCUITPY_BUSDEVICE = 1
|
||||
CIRCUITPY_COUNTIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
@ -20,7 +24,8 @@ CIRCUITPY_I2CTARGET = 0
|
||||
CIRCUITPY_NVM = 0
|
||||
CIRCUITPY_PARALLELDISPLAY = 0
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_ROTARYIO = 0
|
||||
CIRCUITPY_ROTARYIO = 1
|
||||
CIRCUITPY_ROTARYIO_SOFTENCODER = 1
|
||||
CIRCUITPY_USB_MIDI = 1
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "py/mphal.h"
|
||||
#include "mimxrt10xx/periph.h"
|
||||
|
||||
LPI2C_Type *mcu_i2c_banks[2] = { LPI2C1, LPI2C2 };
|
||||
LPI2C_Type *const mcu_i2c_banks[2] = { LPI2C1, LPI2C2 };
|
||||
|
||||
const mcu_periph_obj_t mcu_i2c_sda_list[8] = {
|
||||
PERIPH_PIN(1, 0, kIOMUXC_LPI2C1_SDA_SELECT_INPUT, 0, &pin_GPIO_AD_13),
|
||||
@ -55,7 +55,7 @@ const mcu_periph_obj_t mcu_i2c_scl_list[8] = {
|
||||
PERIPH_PIN(2, 3, kIOMUXC_LPI2C2_SCL_SELECT_INPUT, 3, &pin_GPIO_10),
|
||||
};
|
||||
|
||||
LPSPI_Type *mcu_spi_banks[2] = { LPSPI1, LPSPI2 };
|
||||
LPSPI_Type *const mcu_spi_banks[2] = { LPSPI1, LPSPI2 };
|
||||
|
||||
const mcu_periph_obj_t mcu_spi_sck_list[4] = {
|
||||
PERIPH_PIN(1, 0, kIOMUXC_LPSPI1_SCK_SELECT_INPUT, 0, &pin_GPIO_AD_06),
|
||||
@ -81,7 +81,7 @@ const mcu_periph_obj_t mcu_spi_miso_list[4] = {
|
||||
PERIPH_PIN(2, 1, kIOMUXC_LPSPI2_SDI_SELECT_INPUT, 1, &pin_GPIO_SD_09),
|
||||
};
|
||||
|
||||
LPUART_Type *mcu_uart_banks[4] = { LPUART1, LPUART2, LPUART3, LPUART4 };
|
||||
LPUART_Type *const mcu_uart_banks[4] = { LPUART1, LPUART2, LPUART3, LPUART4 };
|
||||
|
||||
const mcu_periph_obj_t mcu_uart_rx_list[9] = {
|
||||
PERIPH_PIN(1, 2, kIOMUXC_LPUART1_RXD_SELECT_INPUT, 0, &pin_GPIO_SD_11),
|
||||
@ -166,3 +166,28 @@ const mcu_pwm_obj_t mcu_pwm_list[20] = {
|
||||
|
||||
PWM_PIN(PWM1, kPWM_Module_3, kPWM_PwmX, IOMUXC_GPIO_AD_09_FLEXPWM1_PWM3_X, &pin_GPIO_AD_09),
|
||||
};
|
||||
|
||||
const mcu_periph_obj_t mcu_sai_rx_bclk_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_08),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_00),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_rx_data0_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_03),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_03),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_rx_sync_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_02),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_04),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_bclk_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_06),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_01),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_data0_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_04),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_02),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_sync_list[] = {
|
||||
PERIPH_PIN(1, 0, 0, 0, &pin_GPIO_07),
|
||||
PERIPH_PIN(2, 1, 0, 0, &pin_GPIO_SD_00),
|
||||
};
|
||||
|
@ -27,18 +27,18 @@
|
||||
#ifndef MICROPY_INCLUDED_MIMXRT10XX_MIMXRT1011_PERIPHERALS_MIMXRT1011_PERIPH_H
|
||||
#define MICROPY_INCLUDED_MIMXRT10XX_MIMXRT1011_PERIPHERALS_MIMXRT1011_PERIPH_H
|
||||
|
||||
extern LPI2C_Type *mcu_i2c_banks[2];
|
||||
extern LPI2C_Type *const mcu_i2c_banks[2];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_i2c_sda_list[8];
|
||||
extern const mcu_periph_obj_t mcu_i2c_scl_list[8];
|
||||
|
||||
extern LPSPI_Type *mcu_spi_banks[2];
|
||||
extern LPSPI_Type *const mcu_spi_banks[2];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_spi_sck_list[4];
|
||||
extern const mcu_periph_obj_t mcu_spi_mosi_list[4];
|
||||
extern const mcu_periph_obj_t mcu_spi_miso_list[4];
|
||||
|
||||
extern LPUART_Type *mcu_uart_banks[4];
|
||||
extern LPUART_Type *const mcu_uart_banks[4];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_uart_rx_list[9];
|
||||
extern const mcu_periph_obj_t mcu_uart_tx_list[9];
|
||||
@ -47,4 +47,11 @@ extern const mcu_periph_obj_t mcu_uart_cts_list[4];
|
||||
|
||||
extern const mcu_pwm_obj_t mcu_pwm_list[20];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_bclk_list[2];
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_data0_list[2];
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_sync_list[2];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_bclk_list[2];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_data0_list[2];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_sync_list[2];
|
||||
|
||||
#endif // MICROPY_INCLUDED_MIMXRT10XX_MIMXRT1011_PERIPHERALS_MIMXRT1011_PERIPH_H
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "py/mphal.h"
|
||||
#include "mimxrt10xx/periph.h"
|
||||
|
||||
LPI2C_Type *mcu_i2c_banks[4] = { LPI2C1, LPI2C2, LPI2C3, LPI2C4 };
|
||||
LPI2C_Type *const mcu_i2c_banks[4] = { LPI2C1, LPI2C2, LPI2C3, LPI2C4 };
|
||||
|
||||
const mcu_periph_obj_t mcu_i2c_sda_list[8] = {
|
||||
PERIPH_PIN(1, 6, kIOMUXC_LPI2C1_SDA_SELECT_INPUT, 0, &pin_GPIO_EMC_03),
|
||||
@ -60,7 +60,7 @@ const mcu_periph_obj_t mcu_i2c_scl_list[8] = {
|
||||
PERIPH_PIN(4, 3, kIOMUXC_LPI2C4_SCL_SELECT_INPUT, 1, &pin_GPIO_SD_B1_02),
|
||||
};
|
||||
|
||||
LPSPI_Type *mcu_spi_banks[4] = { LPSPI1, LPSPI2, LPSPI3, LPSPI4 };
|
||||
LPSPI_Type *const mcu_spi_banks[4] = { LPSPI1, LPSPI2, LPSPI3, LPSPI4 };
|
||||
|
||||
const mcu_periph_obj_t mcu_spi_sck_list[8] = {
|
||||
PERIPH_PIN(1, 4, kIOMUXC_LPSPI1_SCK_SELECT_INPUT, 0, &pin_GPIO_SD_B0_02),
|
||||
@ -104,7 +104,7 @@ const mcu_periph_obj_t mcu_spi_miso_list[8] = {
|
||||
PERIPH_PIN(4, 4, kIOMUXC_LPSPI2_SDI_SELECT_INPUT, 1, &pin_GPIO_EMC_35),
|
||||
};
|
||||
|
||||
LPUART_Type *mcu_uart_banks[8] = { LPUART1, LPUART2, LPUART3, LPUART4, LPUART5, LPUART6, LPUART7, LPUART8 };
|
||||
LPUART_Type *const mcu_uart_banks[8] = { LPUART1, LPUART2, LPUART3, LPUART4, LPUART5, LPUART6, LPUART7, LPUART8 };
|
||||
|
||||
const mcu_periph_obj_t mcu_uart_rx_list[16] = {
|
||||
PERIPH_PIN(1, 2, 0, 0, &pin_GPIO_AD_B0_07),
|
||||
@ -256,3 +256,58 @@ const mcu_pwm_obj_t mcu_pwm_list[39] = {
|
||||
PWM_PIN(PWM2, kPWM_Module_2, kPWM_PwmX, IOMUXC_GPIO_EMC_12_FLEXPWM2_PWMX02, &pin_GPIO_EMC_12),
|
||||
PWM_PIN(PWM2, kPWM_Module_3, kPWM_PwmX, IOMUXC_GPIO_EMC_13_FLEXPWM2_PWMX03, &pin_GPIO_EMC_13),
|
||||
};
|
||||
|
||||
const mcu_periph_obj_t mcu_sai_rx_bclk_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_14),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_19),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_06),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_EMC_09),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_SD_B0_02),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_29),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_SD_B1_09),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_rx_data0_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_13),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_21),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_05),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_EMC_08),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_SD_B0_03),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_30),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_SD_B1_11),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_rx_sync_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_15),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_28),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_04),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_EMC_07),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_SD_B0_01),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_30),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_SD_B1_10),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_bclk_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_11),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_26),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_01),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_EMC_04),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_SD_B0_04),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_33),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_SD_B0_06),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_data0_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_12),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_25),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_03),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_EMC_06),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_SD_B0_04),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_32),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_SD_B1_08),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_sync_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_10),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_EMC_27),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_02),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_EMC_05),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_SD_B0_06),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_34),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_SD_B1_07),
|
||||
};
|
||||
|
@ -25,21 +25,20 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1021_PERIPH_H
|
||||
#define MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1021_PERIPH_H
|
||||
#pragma once
|
||||
|
||||
extern LPI2C_Type *mcu_i2c_banks[4];
|
||||
extern LPI2C_Type *const mcu_i2c_banks[4];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_i2c_sda_list[8];
|
||||
extern const mcu_periph_obj_t mcu_i2c_scl_list[8];
|
||||
|
||||
extern LPSPI_Type *mcu_spi_banks[4];
|
||||
extern LPSPI_Type *const mcu_spi_banks[4];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_spi_sck_list[8];
|
||||
extern const mcu_periph_obj_t mcu_spi_mosi_list[8];
|
||||
extern const mcu_periph_obj_t mcu_spi_miso_list[8];
|
||||
|
||||
extern LPUART_Type *mcu_uart_banks[8];
|
||||
extern LPUART_Type *const mcu_uart_banks[8];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_uart_rx_list[16];
|
||||
extern const mcu_periph_obj_t mcu_uart_tx_list[16];
|
||||
@ -48,4 +47,9 @@ extern const mcu_periph_obj_t mcu_uart_cts_list[10];
|
||||
|
||||
extern const mcu_pwm_obj_t mcu_pwm_list[39];
|
||||
|
||||
#endif // MICROPY_INCLUDED_MIMXRT10XX_PERIPHERALS_MIMXRT1021_PERIP_H
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_bclk_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_data0_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_sync_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_bclk_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_data0_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_sync_list[7];
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "py/mphal.h"
|
||||
#include "mimxrt10xx/periph.h"
|
||||
|
||||
LPI2C_Type *mcu_i2c_banks[4] = { LPI2C1, LPI2C2, LPI2C3, LPI2C4 };
|
||||
LPI2C_Type *const mcu_i2c_banks[4] = { LPI2C1, LPI2C2, LPI2C3, LPI2C4 };
|
||||
|
||||
const mcu_periph_obj_t mcu_i2c_sda_list[9] = {
|
||||
PERIPH_PIN(1, 2, kIOMUXC_LPI2C1_SDA_SELECT_INPUT, 0, &pin_GPIO_SD_B1_05),
|
||||
@ -61,7 +61,7 @@ const mcu_periph_obj_t mcu_i2c_scl_list[9] = {
|
||||
PERIPH_PIN(4, 0, kIOMUXC_LPI2C4_SCL_SELECT_INPUT, 1, &pin_GPIO_AD_B0_12),
|
||||
};
|
||||
|
||||
LPSPI_Type *mcu_spi_banks[4] = { LPSPI1, LPSPI2, LPSPI3, LPSPI4 };
|
||||
LPSPI_Type *const mcu_spi_banks[4] = { LPSPI1, LPSPI2, LPSPI3, LPSPI4 };
|
||||
|
||||
const mcu_periph_obj_t mcu_spi_sck_list[8] = {
|
||||
PERIPH_PIN(1, 3, kIOMUXC_LPSPI1_SCK_SELECT_INPUT, 0, &pin_GPIO_EMC_27),
|
||||
@ -105,7 +105,7 @@ const mcu_periph_obj_t mcu_spi_miso_list[8] = {
|
||||
PERIPH_PIN(4, 1, kIOMUXC_LPSPI4_SDI_SELECT_INPUT, 1, &pin_GPIO_B1_05),
|
||||
};
|
||||
|
||||
LPUART_Type *mcu_uart_banks[8] = { LPUART1, LPUART2, LPUART3, LPUART4, LPUART5, LPUART6, LPUART7, LPUART8 };
|
||||
LPUART_Type *const mcu_uart_banks[8] = { LPUART1, LPUART2, LPUART3, LPUART4, LPUART5, LPUART6, LPUART7, LPUART8 };
|
||||
|
||||
const mcu_periph_obj_t mcu_uart_rx_list[18] = {
|
||||
PERIPH_PIN(1, 2, 0, 0, &pin_GPIO_AD_B0_13),
|
||||
@ -306,3 +306,59 @@ const mcu_pwm_obj_t mcu_pwm_list[67] = {
|
||||
PWM_PIN(PWM4, kPWM_Module_3, kPWM_PwmB, IOMUXC_GPIO_EMC_18_FLEXPWM4_PWMB03, &pin_GPIO_EMC_18),
|
||||
|
||||
};
|
||||
|
||||
const mcu_periph_obj_t mcu_sai_rx_bclk_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_11),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_B0_15),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_SD_B1_05),
|
||||
PERIPH_PIN(2, 2, 0, 0, &pin_GPIO_EMC_10),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_AD_B0_06),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_35),
|
||||
PERIPH_PIN(3, 8, 0, 0, &pin_GPIO_SD_B1_00),
|
||||
};
|
||||
|
||||
const mcu_periph_obj_t mcu_sai_rx_data0_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_B1_00),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_12),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_06),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_AD_B0_08),
|
||||
PERIPH_PIN(2, 2, 0, 0, &pin_GPIO_EMC_08),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_33),
|
||||
PERIPH_PIN(3, 8, 0, 0, &pin_GPIO_SD_B1_00),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_rx_sync_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_11),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_B0_15),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_SD_B1_05),
|
||||
PERIPH_PIN(2, 2, 0, 0, &pin_GPIO_EMC_09),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_AD_B0_06),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_34),
|
||||
PERIPH_PIN(3, 8, 0, 0, &pin_GPIO_SD_B1_05),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_bclk_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_SD_B1_08),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_B1_02),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_14),
|
||||
PERIPH_PIN(2, 2, 0, 0, &pin_GPIO_AD_B0_05),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_EMC_06),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_38),
|
||||
PERIPH_PIN(3, 8, 0, 0, &pin_GPIO_SD_B1_03),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_data0_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_13),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_B1_01),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_SD_B1_07),
|
||||
PERIPH_PIN(2, 2, 0, 0, &pin_GPIO_EMC_04),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_AD_B0_09),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_36),
|
||||
PERIPH_PIN(3, 8, 0, 0, &pin_GPIO_SD_B1_01),
|
||||
};
|
||||
const mcu_periph_obj_t mcu_sai_tx_sync_list[] = {
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_AD_B1_15),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_B1_03),
|
||||
PERIPH_PIN(1, 3, 0, 0, &pin_GPIO_SD_B1_09),
|
||||
PERIPH_PIN(2, 2, 0, 0, &pin_GPIO_AD_B0_04),
|
||||
PERIPH_PIN(2, 3, 0, 0, &pin_GPIO_EMC_05),
|
||||
PERIPH_PIN(3, 3, 0, 0, &pin_GPIO_EMC_39),
|
||||
PERIPH_PIN(3, 8, 0, 0, &pin_GPIO_SD_B1_02),
|
||||
};
|
||||
|
@ -27,18 +27,18 @@
|
||||
#ifndef MICROPY_INCLUDED_MIMXRT10XX_MIMXRT1062_PERIPHERALS_MIMXRT1011_PERIPH_H
|
||||
#define MICROPY_INCLUDED_MIMXRT10XX_MIMXRT1062_PERIPHERALS_MIMXRT1011_PERIPH_H
|
||||
|
||||
extern LPI2C_Type *mcu_i2c_banks[4];
|
||||
extern LPI2C_Type *const mcu_i2c_banks[4];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_i2c_sda_list[9];
|
||||
extern const mcu_periph_obj_t mcu_i2c_scl_list[9];
|
||||
|
||||
extern LPSPI_Type *mcu_spi_banks[4];
|
||||
extern LPSPI_Type *const mcu_spi_banks[4];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_spi_sck_list[8];
|
||||
extern const mcu_periph_obj_t mcu_spi_mosi_list[8];
|
||||
extern const mcu_periph_obj_t mcu_spi_miso_list[8];
|
||||
|
||||
extern LPUART_Type *mcu_uart_banks[8];
|
||||
extern LPUART_Type *const mcu_uart_banks[8];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_uart_rx_list[18];
|
||||
extern const mcu_periph_obj_t mcu_uart_tx_list[18];
|
||||
@ -47,4 +47,11 @@ extern const mcu_periph_obj_t mcu_uart_cts_list[9];
|
||||
|
||||
extern const mcu_pwm_obj_t mcu_pwm_list[67];
|
||||
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_bclk_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_data0_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_rx_sync_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_bclk_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_data0_list[7];
|
||||
extern const mcu_periph_obj_t mcu_sai_tx_sync_list[7];
|
||||
|
||||
#endif // MICROPY_INCLUDED_MIMXRT10XX_MIMXRT1062_PERIPHERALS_MIMXRT1011_PERIPH_H
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "pins.h"
|
||||
|
||||
typedef struct {
|
||||
uint8_t bank_idx : 4;
|
||||
uint8_t bank_idx : 4; // e.g. the peripheral number
|
||||
uint8_t mux_mode : 4;
|
||||
uint32_t input_reg;
|
||||
uint8_t input_idx;
|
||||
@ -72,9 +72,9 @@ typedef struct {
|
||||
.pin = p_pin, \
|
||||
}
|
||||
|
||||
extern LPI2C_Type *mcu_i2c_banks[];
|
||||
extern LPSPI_Type *mcu_spi_banks[];
|
||||
extern LPUART_Type *mcu_uart_banks[];
|
||||
extern LPI2C_Type *const mcu_i2c_banks[];
|
||||
extern LPSPI_Type *const mcu_spi_banks[];
|
||||
extern LPUART_Type *const mcu_uart_banks[];
|
||||
|
||||
#ifdef MIMXRT1011_SERIES
|
||||
#include "MIMXRT1011/periph.h"
|
||||
|
99
ports/mimxrt10xx/peripherals/mimxrt10xx/pins.c
Normal file
99
ports/mimxrt10xx/peripherals/mimxrt10xx/pins.c
Normal file
@ -0,0 +1,99 @@
|
||||
#include "peripherals/mimxrt10xx/pins.h"
|
||||
|
||||
typedef struct {
|
||||
gpio_change_interrupt_t *func;
|
||||
void *data;
|
||||
} pin_change_interrupt_data;
|
||||
|
||||
/* Array of GPIO peripheral base address. */
|
||||
static GPIO_Type *const s_gpioBases[] = GPIO_BASE_PTRS;
|
||||
static uint32_t GPIO_GetInstance(GPIO_Type *base) {
|
||||
uint32_t instance;
|
||||
|
||||
/* Find the instance index from base address mappings. */
|
||||
for (instance = 0U; instance < ARRAY_SIZE(s_gpioBases); instance++)
|
||||
{
|
||||
if (s_gpioBases[instance] == base) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
assert(instance < ARRAY_SIZE(s_gpioBases));
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
/* to find IRQ based on GPIO */
|
||||
static const IRQn_Type low_irqs[] = GPIO_COMBINED_LOW_IRQS;
|
||||
static const IRQn_Type high_irqs[] = GPIO_COMBINED_HIGH_IRQS;
|
||||
|
||||
static volatile pin_change_interrupt_data pcid[MP_ARRAY_SIZE(s_gpioBases)][32];
|
||||
|
||||
void enable_pin_change_interrupt(const mcu_pin_obj_t *pin, gpio_change_interrupt_t func, void *data) {
|
||||
int instance = GPIO_GetInstance(pin->gpio);
|
||||
volatile pin_change_interrupt_data *pci = &pcid[instance][pin->number];
|
||||
common_hal_mcu_disable_interrupts();
|
||||
pci->data = data;
|
||||
pci->func = func;
|
||||
IRQn_Type irq = pin->number < 16 ? low_irqs[instance] : high_irqs[instance];
|
||||
if (irq != NotAvail_IRQn) {
|
||||
EnableIRQ(irq);
|
||||
}
|
||||
pin->gpio->IMR |= (1 << pin->number);
|
||||
common_hal_mcu_enable_interrupts();
|
||||
}
|
||||
|
||||
void disable_pin_change_interrupt(const mcu_pin_obj_t *pin) {
|
||||
volatile pin_change_interrupt_data *pci = &pcid[GPIO_GetInstance(pin->gpio)][pin->number];
|
||||
common_hal_mcu_disable_interrupts();
|
||||
pin->gpio->IMR &= ~(1 << pin->number);
|
||||
pci->data = NULL;
|
||||
pci->func = NULL;
|
||||
pin->gpio->ISR = (1 << pin->number); // acknowledge any pending interrupt
|
||||
common_hal_mcu_enable_interrupts();
|
||||
}
|
||||
|
||||
static void pin_change_interrupt_common(uint32_t isr, volatile pin_change_interrupt_data *pcr) {
|
||||
for (uint32_t i = 0; i < 32; i++) {
|
||||
if (isr & (1 << i)) {
|
||||
pin_change_interrupt_data cb = pcr[i];
|
||||
if (cb.func) {
|
||||
cb.func(cb.data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#define GPIO_INTERRUPT_HANDLER(name, ptr, instance, offset) \
|
||||
void name(void); \
|
||||
__attribute__((used)) void name(void) { \
|
||||
uint32_t isr = ptr->ISR; \
|
||||
ptr->ISR = isr; \
|
||||
pin_change_interrupt_common(isr, pcid[instance]); \
|
||||
}
|
||||
|
||||
#if defined(GPIO1)
|
||||
GPIO_INTERRUPT_HANDLER(GPIO1_Combined_0_15_IRQHandler, GPIO1, 1, 0);
|
||||
GPIO_INTERRUPT_HANDLER(GPIO1_Combined_16_31_IRQHandler, GPIO1, 1, 16);
|
||||
#endif
|
||||
#if defined(GPIO2)
|
||||
GPIO_INTERRUPT_HANDLER(GPIO2_Combined_0_15_IRQHandler, GPIO2, 2, 0);
|
||||
GPIO_INTERRUPT_HANDLER(GPIO2_Combined_16_31_IRQHandler, GPIO2, 2, 16);
|
||||
#endif
|
||||
#if defined(GPIO3)
|
||||
GPIO_INTERRUPT_HANDLER(GPIO3_Combined_0_15_IRQHandler, GPIO3, 3, 0);
|
||||
GPIO_INTERRUPT_HANDLER(GPIO3_Combined_16_31_IRQHandler, GPIO3, 3, 16);
|
||||
#endif
|
||||
#if defined(GPIO4)
|
||||
GPIO_INTERRUPT_HANDLER(GPIO4_Combined_0_15_IRQHandler, GPIO4, 4, 0);
|
||||
GPIO_INTERRUPT_HANDLER(GPIO4_Combined_16_31_IRQHandler, GPIO4, 4, 16);
|
||||
#endif
|
||||
#if defined(GPIO5)
|
||||
GPIO_INTERRUPT_HANDLER(GPIO5_Combined_0_15_IRQHandler, GPIO5, 5, 0);
|
||||
GPIO_INTERRUPT_HANDLER(GPIO5_Combined_16_31_IRQHandler, GPIO5, 5, 16);
|
||||
#endif
|
||||
#if defined(GPIO6)
|
||||
GPIO_INTERRUPT_HANDLER(GPIO6_Combined_0_15_IRQHandler, GPIO6, 6, 0);
|
||||
GPIO_INTERRUPT_HANDLER(GPIO6_Combined_16_31_IRQHandler, GPIO6, 6, 16);
|
||||
#endif
|
@ -72,6 +72,10 @@ typedef struct {
|
||||
.pad_reset = p_pad_reset, \
|
||||
}
|
||||
|
||||
typedef void (gpio_change_interrupt_t)(void *data);
|
||||
void disable_pin_change_interrupt(const mcu_pin_obj_t *pin);
|
||||
void enable_pin_change_interrupt(const mcu_pin_obj_t *pin, gpio_change_interrupt_t func, void *data);
|
||||
|
||||
#ifdef MIMXRT1011_SERIES
|
||||
#include "MIMXRT1011/pins.h"
|
||||
#elif defined(MIMXRT1021_SERIES)
|
||||
|
@ -36,6 +36,10 @@
|
||||
|
||||
#include "fsl_device_registers.h"
|
||||
|
||||
#if CIRCUITPY_AUDIOBUSIO
|
||||
#include "common-hal/audiobusio/__init__.h"
|
||||
#endif
|
||||
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
#include "common-hal/pwmio/PWMOut.h"
|
||||
#include "common-hal/rtc/RTC.h"
|
||||
@ -414,8 +418,7 @@ void reset_port(void) {
|
||||
audioout_reset();
|
||||
#endif
|
||||
#if CIRCUITPY_AUDIOBUSIO
|
||||
i2sout_reset();
|
||||
// pdmin_reset();
|
||||
i2s_reset();
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_TOUCHIO && CIRCUITPY_TOUCHIO_USE_NATIVE
|
||||
|
@ -241,7 +241,7 @@ FLASHER ?=
|
||||
|
||||
ifeq ($(FLASHER),)
|
||||
|
||||
# Also update to bootloader settting to validate application and skip checksum ( app valid = 0x0001, crc = 0x0000 )
|
||||
# Also update to bootloader setting to validate application and skip checksum ( app valid = 0x0001, crc = 0x0000 )
|
||||
flash: $(BUILD)/firmware.hex
|
||||
nrfjprog --program $< --sectorerase -f $(MCU_VARIANT)
|
||||
nrfjprog --erasepage $(BOOT_SETTING_ADDR) -f $(MCU_VARIANT)
|
||||
|
@ -286,7 +286,7 @@ typedef struct
|
||||
/**@brief L2CAP event structure. */
|
||||
typedef struct
|
||||
{
|
||||
uint16_t conn_handle; /**< Connection Handle on which the event occured. */
|
||||
uint16_t conn_handle; /**< Connection Handle on which the event occurred. */
|
||||
uint16_t local_cid; /**< Local Channel ID of the L2CAP channel, or
|
||||
@ref BLE_L2CAP_CID_INVALID if not present. */
|
||||
union
|
||||
|
@ -287,7 +287,7 @@ typedef struct
|
||||
/**@brief L2CAP event structure. */
|
||||
typedef struct
|
||||
{
|
||||
uint16_t conn_handle; /**< Connection Handle on which the event occured. */
|
||||
uint16_t conn_handle; /**< Connection Handle on which the event occurred. */
|
||||
uint16_t local_cid; /**< Local Channel ID of the L2CAP channel, or
|
||||
@ref BLE_L2CAP_CID_INVALID if not present. */
|
||||
union
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user