merge from master
This commit is contained in:
commit
6a001786a9
14
.travis.yml
14
.travis.yml
@ -23,9 +23,9 @@ git:
|
||||
env:
|
||||
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="circuitplayground_express mini_sam_m4 grandcentral_m4_express capablerobot_usbhub pygamer pca10056 pca10059 feather_nrf52840_express makerdiary_nrf52840_mdk makerdiary_nrf52840_mdk_usb_dongle particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini electronut_labs_papyr electronut_labs_blip" TRAVIS_SDK=arm:nrf
|
||||
- TRAVIS_BOARDS="metro_m0_express metro_m4_express metro_m4_airlift_lite pirkey_m0 trellis_m4_express trinket_m0 sparkfun_lumidrive sparkfun_redboard_turbo bast_pro_mini_m0" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow sam32 uchip escornabot_makech" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow sam32 uchip escornabot_makech pygamer_advance" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero pewpew10 kicksat-sprite ugame10 robohatmm1" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev pybadge" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev pybadge pybadge_airlift" TRAVIS_SDK=arm
|
||||
|
||||
addons:
|
||||
artifacts:
|
||||
@ -33,6 +33,16 @@ addons:
|
||||
- $(ls -d1 bin/*/*/* | tr "\n" ":")
|
||||
target_paths: /
|
||||
|
||||
# Some deploy jobs take over 10 minutes so use this keep alive hack to make sure Travis doesn't kill us.
|
||||
before_deploy: |
|
||||
function keep_alive() {
|
||||
while true; do
|
||||
echo -en "\a"
|
||||
sleep 5
|
||||
done
|
||||
}
|
||||
keep_alive &
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key:
|
||||
|
2
Makefile
2
Makefile
@ -204,7 +204,7 @@ pseudoxml:
|
||||
all-source:
|
||||
|
||||
locale/circuitpython.pot: all-source
|
||||
find $(TRANSLATE_SOURCES) -iname "*.c" -print0 | sort -z | xargs -0 xgettext -L C -s --add-location=file --keyword=translate -o circuitpython.pot -p locale
|
||||
find $(TRANSLATE_SOURCES) -iname "*.c" -print0 | (LC_ALL=C sort -z) | xargs -0 xgettext -L C -s --add-location=file --keyword=translate -o circuitpython.pot -p locale
|
||||
|
||||
translate: locale/circuitpython.pot
|
||||
for po in $(shell ls locale/*.po); do msgmerge -U $$po -s --no-fuzzy-matching --add-location=file locale/circuitpython.pot; done
|
||||
|
@ -60,6 +60,7 @@ For example, a user can then use ``deinit()```::
|
||||
|
||||
import digitalio
|
||||
import board
|
||||
import time
|
||||
|
||||
led = digitalio.DigitalInOut(board.D13)
|
||||
led.direction = digitalio.Direction.OUTPUT
|
||||
@ -79,6 +80,7 @@ Alternatively, using a ``with`` statement ensures that the hardware is deinitial
|
||||
|
||||
import digitalio
|
||||
import board
|
||||
import time
|
||||
|
||||
with digitalio.DigitalInOut(board.D13) as led:
|
||||
led.direction = digitalio.Direction.OUTPUT
|
||||
|
@ -182,7 +182,7 @@ Exceptions
|
||||
|
||||
.. exception:: OSError
|
||||
|
||||
|see_cpython| `OSError`. CircuitPython doesn't implement the ``errno``
|
||||
|see_cpython| :py:class:`cpython:OSError`. CircuitPython doesn't implement the ``errno``
|
||||
attribute, instead use the standard way to access exception arguments:
|
||||
``exc.args[0]``.
|
||||
|
||||
@ -198,11 +198,11 @@ Exceptions
|
||||
|
||||
.. exception:: SystemExit
|
||||
|
||||
|see_cpython| :py:class:`python:SystemExit`.
|
||||
|see_cpython| :py:class:`cpython:SystemExit`.
|
||||
|
||||
.. exception:: TypeError
|
||||
|
||||
|see_cpython| :py:class:`python:TypeError`.
|
||||
|see_cpython| :py:class:`cpython:TypeError`.
|
||||
|
||||
.. exception:: ValueError
|
||||
|
||||
|
@ -447,6 +447,14 @@ msgstr ""
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -437,6 +437,14 @@ msgstr ""
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -441,6 +441,14 @@ msgstr ""
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr "Der Befehl muss ein int zwischen 0 und 255 sein"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -437,6 +437,14 @@ msgstr ""
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -441,6 +441,14 @@ msgstr ""
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
316
locale/es.po
316
locale/es.po
@ -3,7 +3,6 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Carlos Diaz <carlos.santiago.diaz@gmail.com>, 2018.
|
||||
# Juan Biondi <juanernestobiondi@gmail.com>, 2018.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
@ -24,7 +23,7 @@ msgid ""
|
||||
"Code done running. Waiting for reload.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Código en ejecución. Esperando para recargar.\n"
|
||||
"El código terminó su ejecución. Esperando para recargar.\n"
|
||||
|
||||
#: py/obj.c
|
||||
msgid " File \"%q\""
|
||||
@ -57,14 +56,12 @@ msgstr "%q indices deben ser enteros, no %s"
|
||||
|
||||
#: shared-bindings/bleio/CharacteristicBuffer.c
|
||||
#: shared-bindings/displayio/Group.c shared-bindings/displayio/Shape.c
|
||||
#, fuzzy
|
||||
msgid "%q must be >= 1"
|
||||
msgstr "%q debe ser >= 1"
|
||||
|
||||
#: shared-bindings/fontio/BuiltinFont.c
|
||||
#, fuzzy
|
||||
msgid "%q should be an int"
|
||||
msgstr "%q deberia ser un int"
|
||||
msgstr "%q debe ser un int"
|
||||
|
||||
#: py/bc.c py/objnamedtuple.c
|
||||
msgid "%q() takes %d positional arguments but %d were given"
|
||||
@ -200,8 +197,7 @@ msgstr "'return' fuera de una función"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "'yield' outside function"
|
||||
msgstr ""
|
||||
"No es posible reiniciar en modo bootloader porque no hay bootloader presente."
|
||||
msgstr "'yield' fuera de una función"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "*x must be assignment target"
|
||||
@ -224,9 +220,14 @@ msgid "A hardware interrupt channel is already in use"
|
||||
msgstr "El canal EXTINT ya está siendo utilizado"
|
||||
|
||||
#: shared-bindings/bleio/Address.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Address is not %d bytes long or is in wrong format"
|
||||
msgstr "Direción no es %d bytes largo o esta en el formato incorrecto"
|
||||
|
||||
#: shared-bindings/bleio/Address.c
|
||||
#, c-format
|
||||
msgid "Address must be %d bytes long"
|
||||
msgstr "Direción debe ser %d bytes de largo"
|
||||
msgstr "La dirección debe ser %d bytes de largo"
|
||||
|
||||
#: shared-bindings/bleio/Address.c
|
||||
msgid "Address type out of range"
|
||||
@ -241,19 +242,16 @@ msgid "All SPI peripherals are in use"
|
||||
msgstr "Todos los periféricos SPI están siendo usados"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#, fuzzy
|
||||
msgid "All UART peripherals are in use"
|
||||
msgstr "Todos los periféricos UART están siendo usados"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
msgid "All event channels in use"
|
||||
msgstr "Todos los canales de eventos estan en uso"
|
||||
msgstr "Todos los canales de eventos estan siendo usados"
|
||||
|
||||
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
msgid "All sync event channels in use"
|
||||
msgstr ""
|
||||
"Todos los canales de eventos de sincronización(sync event channels) están "
|
||||
"siendo utilizados"
|
||||
msgstr "Todos los canales de eventos de sincronización (sync event channels) están siendo utilizados"
|
||||
|
||||
#: shared-bindings/pulseio/PWMOut.c
|
||||
msgid "All timers for this pin are in use"
|
||||
@ -265,7 +263,7 @@ msgstr "Todos los timers para este pin están siendo utilizados"
|
||||
#: ports/nrf/common-hal/pulseio/PulseOut.c shared-bindings/pulseio/PWMOut.c
|
||||
#: shared-module/_pew/PewPew.c
|
||||
msgid "All timers in use"
|
||||
msgstr "Todos los timers estan en uso"
|
||||
msgstr "Todos los timers en uso"
|
||||
|
||||
#: ports/nrf/common-hal/analogio/AnalogOut.c
|
||||
msgid "AnalogOut functionality not supported"
|
||||
@ -273,7 +271,7 @@ msgstr "Funcionalidad AnalogOut no soportada"
|
||||
|
||||
#: shared-bindings/analogio/AnalogOut.c
|
||||
msgid "AnalogOut is only 16 bits. Value must be less than 65536."
|
||||
msgstr "AnalogOut solo toma 16 bits. El valor debe ser menos de 65536."
|
||||
msgstr "AnalogOut es solo de 16 bits. Value debe ser menos a 65536."
|
||||
|
||||
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
|
||||
msgid "AnalogOut not supported on given pin"
|
||||
@ -285,7 +283,7 @@ msgstr "Otro envío ya está activo"
|
||||
|
||||
#: shared-bindings/pulseio/PulseOut.c
|
||||
msgid "Array must contain halfwords (type 'H')"
|
||||
msgstr "La matriz debe contener palabras medias (tipo 'H')"
|
||||
msgstr "Array debe contener media palabra (type 'H')"
|
||||
|
||||
#: shared-bindings/nvm/ByteArray.c
|
||||
msgid "Array values should be single bytes."
|
||||
@ -293,9 +291,7 @@ msgstr "Valores del array deben ser bytes individuales."
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Attempted heap allocation when MicroPython VM not running.\n"
|
||||
msgstr ""
|
||||
"Se intentó la asignación del heap cuando el VM de MicroPython no estaba "
|
||||
"corriendo.\n"
|
||||
msgstr "Intento de allocation de heap cuando la VM de MicroPython no estaba corriendo.\n"
|
||||
|
||||
#: main.c
|
||||
msgid "Auto-reload is off.\n"
|
||||
@ -305,9 +301,7 @@ msgstr "Auto-recarga deshabilitada.\n"
|
||||
msgid ""
|
||||
"Auto-reload is on. Simply save files over USB to run them or enter REPL to "
|
||||
"disable.\n"
|
||||
msgstr ""
|
||||
"Auto-reload habilitado. Simplemente guarda los archivos via USB para "
|
||||
"ejecutarlos o entra al REPL para desabilitarlos.\n"
|
||||
msgstr "Auto-reload habilitado. Simplemente guarda los archivos via USB para ejecutarlos o entra al REPL para desabilitarlos.\n"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -315,7 +309,7 @@ msgstr "Bit clock y word select deben compartir una unidad de reloj"
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "Bit depth must be multiple of 8."
|
||||
msgstr "La profundidad de bits debe ser múltiplo de 8."
|
||||
msgstr "Bits depth debe ser múltiplo de 8."
|
||||
|
||||
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
|
||||
msgid "Both pins must support hardware interrupts"
|
||||
@ -323,11 +317,11 @@ msgstr "Ambos pines deben soportar interrupciones por hardware"
|
||||
|
||||
#: shared-bindings/supervisor/__init__.c
|
||||
msgid "Brightness must be between 0 and 255"
|
||||
msgstr "Brillo debe estar entro 0 y 255"
|
||||
msgstr "El brillo debe estar entro 0 y 255"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Brightness not adjustable"
|
||||
msgstr "Brillo no adjustable"
|
||||
msgstr "El brillo no se puede ajustar"
|
||||
|
||||
#: shared-module/usb_hid/Device.c
|
||||
#, c-format
|
||||
@ -340,14 +334,13 @@ msgstr "Buffer debe ser de longitud 1 como minimo"
|
||||
|
||||
#: ports/atmel-samd/common-hal/displayio/ParallelBus.c
|
||||
#: ports/nrf/common-hal/displayio/ParallelBus.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Bus pin %d is already in use"
|
||||
msgstr "DAC ya está siendo utilizado"
|
||||
msgstr "Bus pin %d ya está siendo utilizado"
|
||||
|
||||
#: shared-bindings/bleio/UUID.c
|
||||
#, fuzzy
|
||||
msgid "Byte buffer must be 16 bytes."
|
||||
msgstr "buffer debe de ser un objeto bytes-like"
|
||||
msgstr "Byte buffer debe de ser 16 bytes"
|
||||
|
||||
#: shared-bindings/nvm/ByteArray.c
|
||||
msgid "Bytes must be between 0 and 255."
|
||||
@ -376,9 +369,8 @@ msgid "Cannot get pull while in output mode"
|
||||
msgstr "No puede ser pull mientras este en modo de salida"
|
||||
|
||||
#: ports/nrf/common-hal/microcontroller/Processor.c
|
||||
#, fuzzy
|
||||
msgid "Cannot get temperature"
|
||||
msgstr "No se puede obtener la temperatura. status: 0x%02x"
|
||||
msgstr "No se puede obtener la temperatura."
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
msgid "Cannot output both channels on the same pin"
|
||||
@ -406,11 +398,11 @@ msgstr "No se puede asignar un valor cuando la dirección es input."
|
||||
|
||||
#: py/objslice.c
|
||||
msgid "Cannot subclass slice"
|
||||
msgstr ""
|
||||
msgstr "Cannot subclass slice"
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Cannot transfer without MOSI and MISO pins."
|
||||
msgstr "No se puede transferir sin pines MOSI y MISO."
|
||||
msgstr "No se puede transmitir sin pines MOSI y MISO."
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "Cannot unambiguously get sizeof scalar"
|
||||
@ -422,15 +414,15 @@ msgstr "No se puede escribir sin pin MOSI."
|
||||
|
||||
#: shared-bindings/bleio/Service.c
|
||||
msgid "Characteristic UUID doesn't match Service UUID"
|
||||
msgstr "Characteristic UUID no iguala al Service UUID"
|
||||
msgstr "Características UUID no concide con el Service UUID"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Service.c
|
||||
msgid "Characteristic already in use by another Service."
|
||||
msgstr "Characteristic esta en uso por otro servicio"
|
||||
msgstr "Características ya esta en uso por otro Serivice"
|
||||
|
||||
#: shared-bindings/bleio/CharacteristicBuffer.c
|
||||
msgid "CharacteristicBuffer writing not provided"
|
||||
msgstr ""
|
||||
msgstr "CharateristicBuffer escritura no proporcionada"
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "Clock pin init failed."
|
||||
@ -438,7 +430,7 @@ msgstr "Clock pin init fallido"
|
||||
|
||||
#: shared-module/bitbangio/I2C.c
|
||||
msgid "Clock stretch too long"
|
||||
msgstr ""
|
||||
msgstr "Clock stretch demasiado largo "
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Clock unit in use"
|
||||
@ -446,17 +438,24 @@ msgstr "Clock unit está siendo utilizado"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "Column entry must be digitalio.DigitalInOut"
|
||||
msgstr "La entrada en la columna debe ser digitalio.DigitalInOut"
|
||||
msgstr "Entrada de columna debe ser digitalio.DigitalInOut"
|
||||
|
||||
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
|
||||
#, fuzzy
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr "Bytes debe estar entre 0 y 255."
|
||||
msgstr "Command debe estar entre 0 y 255."
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
msgstr "No pudo descodificar ble_uuid, err 0x%04x"
|
||||
msgstr "No se puede descodificar ble_uuid, err 0x%04x"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
msgid "Could not initialize UART"
|
||||
@ -472,7 +471,7 @@ msgstr "No se pudo asignar el segundo buffer"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "Crash into the HardFault_Handler.\n"
|
||||
msgstr ""
|
||||
msgstr "Choque en el HardFault_Handler.\n"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
msgid "DAC already in use"
|
||||
@ -481,16 +480,15 @@ msgstr "DAC ya está siendo utilizado"
|
||||
#: ports/atmel-samd/common-hal/displayio/ParallelBus.c
|
||||
#: ports/nrf/common-hal/displayio/ParallelBus.c
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr ""
|
||||
msgstr "El pin Data 0 debe estar alineado a bytes"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr "El Data Chunk debe seguir el fmt chunk"
|
||||
msgstr "Trozo de datos debe seguir fmt chunk"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, fuzzy
|
||||
msgid "Data too large for advertisement packet"
|
||||
msgstr "Los datos no caben en el paquete de anuncio."
|
||||
msgstr "Data es muy grande para el paquete de advertisement."
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "Destination capacity is smaller than destination_length."
|
||||
@ -521,15 +519,13 @@ msgid "Expected a %q"
|
||||
msgstr "Se espera un %q"
|
||||
|
||||
#: shared-bindings/bleio/CharacteristicBuffer.c
|
||||
#, fuzzy
|
||||
msgid "Expected a Characteristic"
|
||||
msgstr "No se puede agregar la Característica."
|
||||
msgstr "Se esperaba una Característica."
|
||||
|
||||
#: shared-bindings/bleio/Characteristic.c shared-bindings/bleio/Descriptor.c
|
||||
#: shared-bindings/bleio/Service.c
|
||||
#, fuzzy
|
||||
msgid "Expected a UUID"
|
||||
msgstr "Se espera un %q"
|
||||
msgstr "Se esperaba un UUID"
|
||||
|
||||
#: shared-bindings/bleio/Central.c
|
||||
msgid "Expected an Address"
|
||||
@ -542,7 +538,7 @@ msgstr "Se esperaba un tuple de %d, se obtuvo %d"
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
msgstr "Fallo enviando comando"
|
||||
|
||||
#: ports/nrf/sd_mutex.c
|
||||
#, fuzzy, c-format
|
||||
@ -552,12 +548,12 @@ msgstr "No se puede adquirir el mutex, status: 0x%08lX"
|
||||
#: ports/nrf/common-hal/bleio/Service.c
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to add characteristic, err 0x%04x"
|
||||
msgstr "No se puede añadir caracteristica, status: 0x%08lX"
|
||||
msgstr "Fallo al añadir caracteristica, err: 0x%08lX"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to add service, err 0x%04x"
|
||||
msgstr "No se puede detener el anuncio. status: 0x%02x"
|
||||
msgstr "Fallo al agregar servicio. err: 0x%02x"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
msgid "Failed to allocate RX buffer"
|
||||
@ -570,9 +566,8 @@ msgid "Failed to allocate RX buffer of %d bytes"
|
||||
msgstr "Falló la asignación del buffer RX de %d bytes"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Adapter.c
|
||||
#, fuzzy
|
||||
msgid "Failed to change softdevice state"
|
||||
msgstr "No se puede cambiar el estado del softdevice, error: 0x%08lX"
|
||||
msgstr "No se puede cambiar el estado del softdevice"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, c-format
|
||||
@ -584,24 +579,22 @@ msgid "Failed to connect: timeout"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Scanner.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to continue scanning, err 0x%04x"
|
||||
msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
||||
msgstr "No se puede iniciar el escaneo. err: 0x%02x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Central.c
|
||||
#, fuzzy
|
||||
msgid "Failed to discover services"
|
||||
msgstr "No se puede descubrir servicios, status: 0x%08lX"
|
||||
msgstr "No se puede descubrir servicios"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Adapter.c
|
||||
#, fuzzy
|
||||
msgid "Failed to get local address"
|
||||
msgstr "No se puede obtener la dirección local, error: 0x%08lX"
|
||||
msgstr "No se puede obtener la dirección local"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Adapter.c
|
||||
#, fuzzy
|
||||
msgid "Failed to get softdevice state"
|
||||
msgstr "No se puede obtener el estado del softdevice, error: 0x%08lX"
|
||||
msgstr "No se puede obtener el estado del softdevice"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, c-format
|
||||
@ -609,9 +602,9 @@ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||
msgstr "Error al notificar o indicar el valor del atributo, err 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to read CCCD value, err 0x%04x"
|
||||
msgstr "No se puede leer el valor del atributo. status 0x%02x"
|
||||
msgstr "No se puede leer el valor del atributo. err 0x%02x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, c-format
|
||||
@ -619,19 +612,19 @@ msgid "Failed to read attribute value, err 0x%04x"
|
||||
msgstr "Error al leer valor del atributo, err 0x%04"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to read gatts value, err 0x%04x"
|
||||
msgstr "No se puede escribir el valor del atributo. status: 0x%02x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||
msgstr "No se puede agregar el Vendor Specific 128-bit UUID."
|
||||
msgstr "Fallo al registrar el Vendor-Specific UUID, err 0x%04x"
|
||||
|
||||
#: ports/nrf/sd_mutex.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to release mutex, err 0x%04x"
|
||||
msgstr "No se puede liberar el mutex, status: 0x%08lX"
|
||||
msgstr "No se puede liberar el mutex, err 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, c-format
|
||||
@ -639,9 +632,9 @@ msgid "Failed to set device name, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to start advertising, err 0x%04x"
|
||||
msgstr "No se puede inicar el anuncio. status: 0x%02x"
|
||||
msgstr "No se puede inicar el anuncio. err: 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Central.c
|
||||
#, c-format
|
||||
@ -649,14 +642,14 @@ msgid "Failed to start connecting, error 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Scanner.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to start scanning, err 0x%04x"
|
||||
msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
||||
msgstr "No se puede iniciar el escaneo. err 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to stop advertising, err 0x%04x"
|
||||
msgstr "No se puede detener el anuncio. status: 0x%02x"
|
||||
msgstr "No se puede detener el anuncio. err: 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, c-format
|
||||
@ -664,14 +657,13 @@ msgid "Failed to write CCCD, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to write attribute value, err 0x%04x"
|
||||
msgstr "No se puede escribir el valor del atributo. status: 0x%02x"
|
||||
msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, fuzzy, c-format
|
||||
#, c-format
|
||||
msgid "Failed to write gatts value, err 0x%04x"
|
||||
msgstr "No se puede escribir el valor del atributo. status: 0x%02x"
|
||||
msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
||||
|
||||
#: py/moduerrno.c
|
||||
msgid "File exists"
|
||||
@ -720,9 +712,7 @@ msgstr "operación I2C no soportada"
|
||||
msgid ""
|
||||
"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/"
|
||||
"mpy-update for more info."
|
||||
msgstr ""
|
||||
"Archivo .mpy incompatible. Actualice todos los archivos .mpy. Consulte "
|
||||
"http://adafru.it/mpy-update para más información"
|
||||
msgstr "Archivo .mpy incompatible. Actualice todos los archivos .mpy. Consulte http://adafru.it/mpy-update para más información"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "Incorrect buffer size"
|
||||
@ -752,7 +742,7 @@ msgstr "Argumento inválido"
|
||||
|
||||
#: shared-module/displayio/Bitmap.c
|
||||
msgid "Invalid bits per value"
|
||||
msgstr "Bits no válidos por valor"
|
||||
msgstr "Inválido bits por valor"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
msgid "Invalid buffer size"
|
||||
@ -760,7 +750,7 @@ msgstr "Tamaño de buffer inválido"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr "Período de captura no válido. Rango válido: 1 - 500"
|
||||
msgstr "Inválido periodo de captura. Rango válido: 1 - 500"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
@ -776,7 +766,7 @@ msgstr "Archivo inválido"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
msgstr "Formato de fragmento de formato no válido"
|
||||
|
||||
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
|
||||
msgid "Invalid number of bits"
|
||||
@ -830,7 +820,7 @@ msgstr "LHS del agumento por palabra clave deberia ser un identificador"
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Layer already in a group."
|
||||
msgstr ""
|
||||
msgstr "Layer ya pertenece a un grupo"
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Layer must be a Group or TileGrid subclass."
|
||||
@ -870,7 +860,7 @@ msgstr "Valor máximo de x cuando se refleja es %d"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "MicroPython NLR jump failed. Likely memory corruption.\n"
|
||||
msgstr ""
|
||||
msgstr "MicroPython NLR salto fallido. Probable corrupción de memoria.\n"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "MicroPython fatal error.\n"
|
||||
@ -878,11 +868,11 @@ msgstr "Error fatal de MicroPython.\n"
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "Microphone startup delay must be in range 0.0 to 1.0"
|
||||
msgstr ""
|
||||
msgstr "Micrófono demora de inicio debe estar en el rango 0.0 a 1.0"
|
||||
|
||||
#: shared-bindings/displayio/Group.c
|
||||
msgid "Must be a %q subclass."
|
||||
msgstr ""
|
||||
msgstr "Debe de ser una subclase de %q"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
msgid "No CCCD for this Characteristic"
|
||||
@ -923,7 +913,7 @@ msgstr "No hay hardware random disponible"
|
||||
|
||||
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
|
||||
msgid "No hardware support on clk pin"
|
||||
msgstr ""
|
||||
msgstr "Sin soporte de hardware en el pin clk"
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||
@ -940,20 +930,18 @@ msgstr "No existe el archivo/directorio"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#: shared-bindings/bleio/CharacteristicBuffer.c
|
||||
#, fuzzy
|
||||
msgid "Not connected"
|
||||
msgstr "No se puede conectar a AP"
|
||||
msgstr "No conectado"
|
||||
|
||||
#: shared-bindings/audiobusio/I2SOut.c shared-bindings/audioio/AudioOut.c
|
||||
msgid "Not playing"
|
||||
msgstr ""
|
||||
msgstr "No reproduciendo"
|
||||
|
||||
#: shared-bindings/util.c
|
||||
msgid ""
|
||||
"Object has been deinitialized and can no longer be used. Create a new object."
|
||||
msgstr ""
|
||||
"El objeto se ha desinicializado y ya no se puede utilizar. Crea un nuevo "
|
||||
"objeto"
|
||||
"El objeto se ha desinicializado y ya no se puede utilizar. Crea un nuevo objeto"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
msgid "Odd parity is not supported"
|
||||
@ -961,15 +949,15 @@ msgstr "Paridad impar no soportada"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
msgid "Only 8 or 16 bit mono with "
|
||||
msgstr ""
|
||||
msgstr "Solo mono de 8 ó 16 bit con "
|
||||
|
||||
#: shared-module/displayio/OnDiskBitmap.c
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Only Windows format, uncompressed BMP supported: given header size is %d"
|
||||
msgstr ""
|
||||
"Solo formato de Windows, BMP sin compresión soportado: el tamaño del "
|
||||
"encabezado dado es %d"
|
||||
"Solo formato de Windows, sin comprimir BMP soportado: tamaño de encabezado "
|
||||
"dado es %d"
|
||||
|
||||
#: shared-module/displayio/OnDiskBitmap.c
|
||||
#, c-format
|
||||
@ -977,6 +965,8 @@ msgid ""
|
||||
"Only monochrome, indexed 8bpp, and 16bpp or greater BMPs supported: %d bpp "
|
||||
"given"
|
||||
msgstr ""
|
||||
"Solo se admiten BMP monocromos, indexados de 8bpp y 16bpp o superiores:% d "
|
||||
"bppdado"
|
||||
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
#, fuzzy
|
||||
@ -985,17 +975,19 @@ msgstr "solo se admiten segmentos con step=1 (alias None)"
|
||||
|
||||
#: shared-bindings/audiobusio/PDMIn.c
|
||||
msgid "Oversample must be multiple of 8."
|
||||
msgstr ""
|
||||
msgstr "El sobremuestreo debe ser un múltiplo de 8"
|
||||
|
||||
#: shared-bindings/pulseio/PWMOut.c
|
||||
msgid ""
|
||||
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
|
||||
msgstr ""
|
||||
msgstr "PWM duty_cycle debe ser entre 0 y 65535 inclusivo (16 bit resolution)"
|
||||
|
||||
#: shared-bindings/pulseio/PWMOut.c
|
||||
msgid ""
|
||||
"PWM frequency not writable when variable_frequency is False on construction."
|
||||
msgstr ""
|
||||
"PWM frecuencia no esta escrito cuando el variable_frequency es falso en "
|
||||
"construcion"
|
||||
|
||||
#: py/moduerrno.c
|
||||
msgid "Permission denied"
|
||||
@ -1008,7 +1000,7 @@ msgstr "Pin no tiene capacidad ADC"
|
||||
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
msgid "Pixel beyond bounds of buffer"
|
||||
msgstr ""
|
||||
msgstr "Pixel beyond bounds of buffer"
|
||||
|
||||
#: py/builtinhelp.c
|
||||
#, fuzzy
|
||||
@ -1017,7 +1009,7 @@ msgstr "Incapaz de montar de nuevo el sistema de archivos"
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Pop from an empty Ps2 buffer"
|
||||
msgstr ""
|
||||
msgstr "Pop de un buffer Ps2 vacio"
|
||||
|
||||
#: main.c
|
||||
msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
@ -1060,7 +1052,7 @@ msgstr "Canal derecho no soportado"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "Row entry must be digitalio.DigitalInOut"
|
||||
msgstr ""
|
||||
msgstr "La entrada de la fila debe ser digitalio.DigitalInOut"
|
||||
|
||||
#: main.c
|
||||
msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
@ -1090,17 +1082,17 @@ msgstr "Serializer está siendo utilizado"
|
||||
|
||||
#: shared-bindings/nvm/ByteArray.c
|
||||
msgid "Slice and value different lengths."
|
||||
msgstr "Cortes y valores son de diferentes longitudes."
|
||||
msgstr "Slice y value tienen diferentes longitudes"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c shared-bindings/displayio/Group.c
|
||||
#: shared-bindings/displayio/TileGrid.c shared-bindings/pulseio/PulseIn.c
|
||||
msgid "Slices not supported"
|
||||
msgstr "No se soportan los cortes"
|
||||
msgstr "Rebanadas no soportadas"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Adapter.c
|
||||
#, c-format
|
||||
msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||
msgstr ""
|
||||
msgstr "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
@ -1122,6 +1114,12 @@ msgid ""
|
||||
"If you didn't change the stack, then file an issue here with the contents of "
|
||||
"your CIRCUITPY drive:\n"
|
||||
msgstr ""
|
||||
"El heap de CircuitPython estaba corrupto porque el stack era demasiado "
|
||||
"pequeño.\n"
|
||||
"Aumente los límites del tamaño del stacj y presione reset (después de "
|
||||
"expulsarCIRCUITPY).\n"
|
||||
"Si no cambió el stack, entonces reporte un issue aquí con el contenido desu "
|
||||
"unidad CIRCUITPY:\n"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -1130,7 +1128,6 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The microcontroller's power dipped. Please make sure your power supply "
|
||||
"provides\n"
|
||||
@ -1176,7 +1173,7 @@ msgstr "Los índices de Tile deben ser 0 - 255"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile width must exactly divide bitmap width"
|
||||
msgstr ""
|
||||
msgstr "Ancho del Tile debe dividir exactamente el ancho de mapa de bits"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid "To exit, please reset the board without "
|
||||
@ -1188,7 +1185,7 @@ msgstr "Demasiados canales en sample."
|
||||
|
||||
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
|
||||
msgid "Too many display busses"
|
||||
msgstr ""
|
||||
msgstr "Demasiados buses de pantalla"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Too many displays"
|
||||
@ -1216,11 +1213,11 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/bleio/UUID.c
|
||||
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
|
||||
msgstr "El string UUID no es 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx'"
|
||||
msgstr "UUID string no es 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
|
||||
|
||||
#: shared-bindings/bleio/UUID.c
|
||||
msgid "UUID value is not str, int or byte buffer"
|
||||
msgstr "El valor UUID no es str, int, or buffer byte"
|
||||
msgstr "UUID valor no es un str, int o byte buffer"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||
@ -1246,12 +1243,12 @@ msgstr "Imposible escribir en nvm"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
msgstr "Tipo nrfx uuid inesperado"
|
||||
msgstr "Tipo de uuid nrfx inesperado"
|
||||
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
msgstr ""
|
||||
msgstr "Número incomparable de elementos en RHS (%d esperado,%d obtenido)"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||
msgid "Unsupported baudrate"
|
||||
@ -1303,7 +1300,6 @@ msgstr ""
|
||||
"Para listar los módulos incorporados por favor haga `help(\"modules\")`.\n"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"You are running in safe mode which means something unanticipated happened.\n"
|
||||
msgstr ""
|
||||
@ -1375,7 +1371,7 @@ msgstr "atributos aún no soportados"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
msgid "bad GATT role"
|
||||
msgstr "Rol GATT malo"
|
||||
msgstr "mal GATT role"
|
||||
|
||||
#: py/builtinevex.c
|
||||
msgid "bad compile mode"
|
||||
@ -1416,20 +1412,19 @@ msgstr "El argumento de chr() no esta en el rango(256)"
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr "buf es demasiado pequeño. necesita %d bytes."
|
||||
msgstr "buf es demasiado pequeño. necesita %d bytes"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr "buffer debe de ser un objeto bytes-like"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
#, fuzzy
|
||||
msgid "buffer size must match format"
|
||||
msgstr "los buffers deben de tener la misma longitud"
|
||||
msgstr "el tamaño del buffer debe de coincidir con el formato"
|
||||
|
||||
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
|
||||
msgid "buffer slices must be of equal length"
|
||||
msgstr "cortes del buffer necesitan ser de tamaño igual"
|
||||
msgstr "Las secciones del buffer necesitan tener longitud igual"
|
||||
|
||||
#: py/modstruct.c shared-bindings/struct/__init__.c
|
||||
#: shared-module/struct/__init__.c
|
||||
@ -1442,7 +1437,7 @@ msgstr "los buffers deben de tener la misma longitud"
|
||||
|
||||
#: shared-bindings/_pew/PewPew.c
|
||||
msgid "buttons must be digitalio.DigitalInOut"
|
||||
msgstr "botones deben ser digitalio.DigitalInOut"
|
||||
msgstr "los botones necesitan ser digitalio.DigitalInOut"
|
||||
|
||||
#: py/vm.c
|
||||
msgid "byte code not implemented"
|
||||
@ -1451,7 +1446,7 @@ msgstr "codigo byte no implementado"
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
||||
msgstr "byteorder no es instancia de ByteOrder (encontramos un %s)"
|
||||
msgstr "byteorder no es instancia de ByteOrder (encontarmos un %s)"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||
msgid "bytes > 8 bits not supported"
|
||||
@ -1633,15 +1628,15 @@ msgstr "no se puedo realizar importación relativa"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "emitiendo (casting)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bleio/Service.c
|
||||
msgid "characteristics includes an object that is not a Characteristic"
|
||||
msgstr "charactericas incluye un objeto que no es Characteristic"
|
||||
msgstr "characteristics incluye un objeto que no es una Characteristica"
|
||||
|
||||
#: shared-bindings/_stage/Text.c
|
||||
msgid "chars buffer too small"
|
||||
msgstr "chars buffer muy pequeño"
|
||||
msgstr "chars buffer es demasiado pequeño"
|
||||
|
||||
#: py/modbuiltins.c
|
||||
msgid "chr() arg not in range(0x110000)"
|
||||
@ -1653,7 +1648,7 @@ msgstr "El argumento de chr() no esta en el rango(256)"
|
||||
|
||||
#: shared-bindings/displayio/Palette.c
|
||||
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
|
||||
msgstr "El burrer de color debe ser 3 bytes (RGB) ó 4 bytes (RGB + pad byte)"
|
||||
msgstr "color buffer debe ser 3 bytes (RGB) ó 4 bytes (RGB + pad byte)"
|
||||
|
||||
#: shared-bindings/displayio/Palette.c
|
||||
msgid "color buffer must be a buffer or int"
|
||||
@ -1744,9 +1739,8 @@ msgid "end of format while looking for conversion specifier"
|
||||
msgstr "el final del formato mientras se busca el especificador de conversión"
|
||||
|
||||
#: shared-bindings/displayio/Shape.c
|
||||
#, fuzzy
|
||||
msgid "end_x should be an int"
|
||||
msgstr "y deberia ser un int"
|
||||
msgstr "end_x debe ser un int"
|
||||
|
||||
#: ports/nrf/common-hal/busio/UART.c
|
||||
#, c-format
|
||||
@ -1759,11 +1753,11 @@ msgstr "las excepciones deben derivar de BaseException"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "expected ':' after format specifier"
|
||||
msgstr "se espera ':' despues de un especificaro de tipo format"
|
||||
msgstr "se esperaba ':' después de un especificador de tipo format"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "expected tuple/list"
|
||||
msgstr "tupla/lista esperada"
|
||||
msgstr "se esperaba una tupla/lista"
|
||||
|
||||
#: py/modthread.c
|
||||
msgid "expecting a dict for keyword args"
|
||||
@ -1807,7 +1801,7 @@ msgstr "firstbit debe ser MSB"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "float too big"
|
||||
msgstr "float es demasiado grande"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_stage/Text.c
|
||||
msgid "font must be 2048 bytes long"
|
||||
@ -1891,7 +1885,7 @@ msgstr "formato incompleto"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "incomplete format key"
|
||||
msgstr "llave de formato incompleto"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
msgid "incorrect padding"
|
||||
@ -1961,7 +1955,7 @@ msgstr "decorador de micropython inválido"
|
||||
|
||||
#: shared-bindings/random/__init__.c
|
||||
msgid "invalid step"
|
||||
msgstr "paso invalido"
|
||||
msgstr ""
|
||||
|
||||
#: py/compile.c py/parse.c
|
||||
msgid "invalid syntax"
|
||||
@ -2066,7 +2060,7 @@ msgstr "múltiples *x en la asignación"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "multiple bases have instance lay-out conflict"
|
||||
msgstr "múltiples bases tienen conflicto de diseño"
|
||||
msgstr "multiple bases tienen una instancia conel conflicto diseño"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "multiple inheritance not supported"
|
||||
@ -2089,9 +2083,8 @@ msgid "name '%q' is not defined"
|
||||
msgstr "name '%q' no esta definido"
|
||||
|
||||
#: shared-bindings/bleio/Peripheral.c
|
||||
#, fuzzy
|
||||
msgid "name must be a string"
|
||||
msgstr "palabras clave deben ser strings"
|
||||
msgstr "name debe de ser un string"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "name not defined"
|
||||
@ -2099,11 +2092,11 @@ msgstr "name no definido"
|
||||
|
||||
#: py/compile.c
|
||||
msgid "name reused for argument"
|
||||
msgstr "nombre reusado para argumento"
|
||||
msgstr "name reusado para argumento"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "native yield"
|
||||
msgstr "rendimiento nativo"
|
||||
msgstr "yield nativo"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
@ -2116,7 +2109,7 @@ msgstr "potencia negativa sin float support"
|
||||
|
||||
#: py/objint_mpz.c py/runtime.c
|
||||
msgid "negative shift count"
|
||||
msgstr "cuenta negativa de turnos"
|
||||
msgstr "cuenta de corrimientos negativo"
|
||||
|
||||
#: py/vm.c
|
||||
msgid "no active exception to reraise"
|
||||
@ -2166,7 +2159,7 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/bleio/UUID.c
|
||||
msgid "not a 128-bit UUID"
|
||||
msgstr "no es un UUID de 128-bits"
|
||||
msgstr "no es 128-bit UUID"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "not all arguments converted during string formatting"
|
||||
@ -2271,13 +2264,12 @@ msgid "parameters must be registers in sequence r0 to r3"
|
||||
msgstr "los parametros deben ser registros en secuencia del r0 al r3"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
#, fuzzy
|
||||
msgid "pixel coordinates out of bounds"
|
||||
msgstr "address fuera de límites"
|
||||
msgstr "coordenadas del pixel fuera de límites"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
msgid "pixel value requires too many bits"
|
||||
msgstr "valor de píxel requiere demasiado bits"
|
||||
msgstr "valor del pixel require demasiado bits"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "pixel_shader must be displayio.Palette or displayio.ColorConverter"
|
||||
@ -2314,7 +2306,7 @@ msgstr "desbordamiento de cola(queue)"
|
||||
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
msgid "rawbuf is not the same size as buf"
|
||||
msgstr "rawbuf no es el miso tamaño que buf"
|
||||
msgstr "rawbuf no es el mismo tamaño que buf"
|
||||
|
||||
#: shared-bindings/_pixelbuf/__init__.c
|
||||
#, fuzzy
|
||||
@ -2340,7 +2332,7 @@ msgstr "retorno esperado '%q' pero se obtuvo '%q'"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
msgstr "rsplit(None,n)"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
msgid ""
|
||||
@ -2401,7 +2393,7 @@ msgstr "y deberia ser un int"
|
||||
|
||||
#: shared-bindings/random/__init__.c
|
||||
msgid "step must be non-zero"
|
||||
msgstr "paso debe ser numero no-cero"
|
||||
msgstr "paso debe ser numero no cero"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "stop must be 1 or 2"
|
||||
@ -2409,7 +2401,7 @@ msgstr "stop debe ser 1 ó 2"
|
||||
|
||||
#: shared-bindings/random/__init__.c
|
||||
msgid "stop not reachable from start"
|
||||
msgstr ""
|
||||
msgstr "stop no se puede alcanzar del principio"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "stream operation not supported"
|
||||
@ -2458,15 +2450,15 @@ msgstr "error de sintaxis en el descriptor uctypes"
|
||||
|
||||
#: shared-bindings/touchio/TouchIn.c
|
||||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "threshold debe estar en el rango 0 a 65536"
|
||||
msgstr "limite debe ser en el rango 0-65536"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
msgstr "el indice del tile fuera de limite"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
msgstr "time.struct_time() toma un sequencio 9"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes exactly 1 argument"
|
||||
@ -2474,16 +2466,15 @@ msgstr "time.struct_time() acepta exactamente 1 argumento"
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgstr "tiempo muerto >100 (unidades en segundos)"
|
||||
msgstr "timepo muerto >100 (unidades en segundos)"
|
||||
|
||||
#: shared-bindings/bleio/CharacteristicBuffer.c
|
||||
#, fuzzy
|
||||
msgid "timeout must be >= 0.0"
|
||||
msgstr "tiempo muerto debe ser 8"
|
||||
msgstr "tiempo muerto debe ser >= 0.0"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "timestamp out of range for platform time_t"
|
||||
msgstr ""
|
||||
msgstr "timestamp fuera de rango para plataform time_t"
|
||||
|
||||
#: shared-module/struct/__init__.c
|
||||
msgid "too many arguments provided with the given format"
|
||||
@ -2504,7 +2495,7 @@ msgstr "tupla/lista tiene una longitud incorrecta"
|
||||
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
msgid "tuple/list required on RHS"
|
||||
msgstr "tuple o lista se requiere en RHS"
|
||||
msgstr "tuple/lista se require en RHS"
|
||||
|
||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||
msgid "tx and rx cannot both be None"
|
||||
@ -2548,7 +2539,7 @@ msgstr "argumento por palabra clave inesperado '%q'"
|
||||
|
||||
#: py/lexer.c
|
||||
msgid "unicode name escapes"
|
||||
msgstr ""
|
||||
msgstr "nombre en unicode escapa"
|
||||
|
||||
#: py/parse.c
|
||||
msgid "unindent does not match any outer indentation level"
|
||||
@ -2628,7 +2619,7 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
msgid "value_count must be > 0"
|
||||
msgstr "value_count debe ser > 0"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/bleio/Scanner.c
|
||||
msgid "window must be <= interval"
|
||||
@ -2636,7 +2627,7 @@ msgstr ""
|
||||
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
msgid "write_args must be a list, tuple, or None"
|
||||
msgstr "write_args debe ser lista, tuple, o None"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "wrong number of arguments"
|
||||
@ -2791,13 +2782,6 @@ msgstr "paso cero"
|
||||
#~ msgid "Not connected."
|
||||
#~ msgstr "No conectado."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Only 8 or 16 bit mono with MP_STRINGIFY(OVERSAMPLING) x oversampling is "
|
||||
#~ "supported."
|
||||
#~ msgstr ""
|
||||
#~ "Solo 8 ó 16 bit mono con MP_STRINGIFY(OVERSAMPLING) x de sobremuestreo es "
|
||||
#~ "soportado."
|
||||
|
||||
#~ msgid "Only Windows format, uncompressed BMP supported %d"
|
||||
#~ msgstr "Solo formato Windows, BMP sin comprimir soportado %d"
|
||||
|
||||
|
@ -446,6 +446,14 @@ msgstr ""
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr "Sa gitna ng 0 o 255 dapat ang bytes."
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -452,6 +452,14 @@ msgstr "L'entrée 'Column' doit être un digitalio.DigitalInOut"
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr "La commande doit être un entier entre 0 et 255"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -447,6 +447,14 @@ msgstr ""
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr "I byte devono essere compresi tra 0 e 255"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -440,6 +440,14 @@ msgstr "Kolumny muszą być typu digitalio.DigitalInOut"
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr "Komenda musi być int pomiędzy 0 a 255"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -443,6 +443,14 @@ msgstr ""
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr "Os bytes devem estar entre 0 e 255."
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -441,6 +441,14 @@ msgstr "Liè tiáomù bìxū shì digitalio.DigitalInOut"
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
msgstr "Mìnglìng bìxū shì 0 dào 255 zhī jiān de int"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
||||
|
@ -74,12 +74,12 @@ void board_init(void) {
|
||||
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
|
||||
bus->base.type = &displayio_fourwire_type;
|
||||
busio_spi_obj_t *spi = common_hal_board_create_spi();
|
||||
common_hal_busio_spi_configure(spi, 12000000, 0, 0, 8);
|
||||
common_hal_displayio_fourwire_construct(bus,
|
||||
spi,
|
||||
&pin_PA28, // Command or data
|
||||
&pin_PA01, // Chip select
|
||||
&pin_PA27); // Reset
|
||||
&pin_PA27, // Reset
|
||||
12000000);
|
||||
|
||||
displayio_display_obj_t* display = &displays[0].display;
|
||||
display->base.type = &displayio_display_type;
|
||||
|
@ -5,8 +5,5 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_APA102_MOSI), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_APA102_SCK), MP_ROM_PTR(&pin_PA01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
||||
|
@ -73,7 +73,6 @@ void board_init(void) {
|
||||
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
|
||||
common_hal_busio_spi_construct(spi, &pin_PB13, &pin_PB15, NULL);
|
||||
common_hal_busio_spi_never_reset(spi);
|
||||
common_hal_busio_spi_configure(spi, 24000000, 0, 0, 8);
|
||||
|
||||
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
|
||||
bus->base.type = &displayio_fourwire_type;
|
||||
@ -81,7 +80,8 @@ void board_init(void) {
|
||||
spi,
|
||||
&pin_PB05, // TFT_DC Command or data
|
||||
&pin_PB07, // TFT_CS Chip select
|
||||
&pin_PA00); // TFT_RST Reset
|
||||
&pin_PA00, // TFT_RST Reset
|
||||
60000000);
|
||||
|
||||
displayio_display_obj_t* display = &displays[0].display;
|
||||
display->base.type = &displayio_display_type;
|
||||
|
92
ports/atmel-samd/boards/pybadge_airlift/board.c
Normal file
92
ports/atmel-samd/boards/pybadge_airlift/board.c
Normal file
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "boards/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
#include "shared-bindings/busio/SPI.h"
|
||||
#include "shared-bindings/displayio/FourWire.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/displayio/mipi_constants.h"
|
||||
#include "tick.h"
|
||||
|
||||
displayio_fourwire_obj_t board_display_obj;
|
||||
|
||||
#define DELAY 0x80
|
||||
|
||||
uint8_t display_init_sequence[] = {
|
||||
0x01, 0 | DELAY, 150, // SWRESET
|
||||
0x11, 0 | DELAY, 255, // SLPOUT
|
||||
0x36, 1, 0x08, // _MADCTL bottom to top refresh in vsync aligned order.
|
||||
0x3a, 1, 0x55, // COLMOD - 16bit color
|
||||
0x21, 0 | DELAY, 10, // _INVON
|
||||
0x13, 0 | DELAY, 10, // _NORON
|
||||
0x29, 0 | DELAY, 255, // _DISPON
|
||||
};
|
||||
|
||||
void board_init(void) {
|
||||
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
|
||||
common_hal_busio_spi_construct(spi, &pin_PB13, &pin_PB15, NULL);
|
||||
common_hal_busio_spi_never_reset(spi);
|
||||
|
||||
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
|
||||
bus->base.type = &displayio_fourwire_type;
|
||||
common_hal_displayio_fourwire_construct(bus,
|
||||
spi,
|
||||
&pin_PB05, // TFT_DC Command or data
|
||||
&pin_PB06, // TFT_CS Chip select
|
||||
&pin_PB07, // TFT_RST Reset
|
||||
60000000);
|
||||
|
||||
displayio_display_obj_t* display = &displays[0].display;
|
||||
display->base.type = &displayio_display_type;
|
||||
common_hal_displayio_display_construct(display,
|
||||
bus,
|
||||
320, // Width (after rotation)
|
||||
240, // Height (after rotation)
|
||||
0, // column start
|
||||
0, // row start
|
||||
90, // rotation
|
||||
16, // Color depth
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
0x37, // set vertical scroll command
|
||||
display_init_sequence,
|
||||
sizeof(display_init_sequence),
|
||||
&pin_PA01, // backlight pin
|
||||
1.0f, // brightness (ignored)
|
||||
true, // auto_brightness
|
||||
false, // single_byte_bounds
|
||||
false); // data_as_commands
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
}
|
37
ports/atmel-samd/boards/pybadge_airlift/mpconfigboard.h
Normal file
37
ports/atmel-samd/boards/pybadge_airlift/mpconfigboard.h
Normal file
@ -0,0 +1,37 @@
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit Pybadge Airlift"
|
||||
#define MICROPY_HW_MCU_NAME "samd51j20"
|
||||
|
||||
#define CIRCUITPY_MCU_FAMILY samd51
|
||||
|
||||
// This is for Rev B
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA23)
|
||||
|
||||
// These are pins not to reset.
|
||||
// QSPI Data pins
|
||||
#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11)
|
||||
// DotStar pins, QSPI CS, and QSPI SCK
|
||||
#define MICROPY_PORT_B (PORT_PB10 | PORT_PB11)
|
||||
#define MICROPY_PORT_C (0)
|
||||
#define MICROPY_PORT_D (0)
|
||||
|
||||
#define AUTORESET_DELAY_MS 500
|
||||
|
||||
// If you change this, then make sure to update the linker scripts as well to
|
||||
// make sure you don't overwrite code
|
||||
#define CIRCUITPY_INTERNAL_NVM_SIZE 8192
|
||||
|
||||
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PA13)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PA12)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PA17)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PB23)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PB22)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB17)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB16)
|
||||
|
||||
// USB is always used internally so skip the pin objects for it.
|
||||
#define IGNORE_PIN_PA24 1
|
||||
#define IGNORE_PIN_PA25 1
|
23
ports/atmel-samd/boards/pybadge_airlift/mpconfigboard.mk
Normal file
23
ports/atmel-samd/boards/pybadge_airlift/mpconfigboard.mk
Normal file
@ -0,0 +1,23 @@
|
||||
LD_FILE = boards/samd51x19-bootloader-external-flash.ld
|
||||
USB_VID = 0x239A
|
||||
USB_PID = 0x8043
|
||||
USB_PRODUCT = "PyBadge AirLift"
|
||||
USB_MANUFACTURER = "Adafruit Industries LLC"
|
||||
|
||||
CHIP_VARIANT = SAMD51J20A
|
||||
CHIP_FAMILY = samd51
|
||||
|
||||
QSPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
CIRCUITPY_GAMEPAD = 1
|
||||
CIRCUITPY_GAMEPADSHIFT = 1
|
||||
CIRCUITPY_STAGE = 1
|
||||
# No touch on SAMD51 yet
|
||||
CIRCUITPY_TOUCHIO = 0
|
||||
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage/pybadge
|
75
ports/atmel-samd/boards/pybadge_airlift/pins.c
Normal file
75
ports/atmel-samd/boards/pybadge_airlift/pins.c
Normal file
@ -0,0 +1,75 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
#include "boards/board.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB08)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB09)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA04)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PB01)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB04)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PB03)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PB02)},
|
||||
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB17)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB16)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB03)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB02)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA14)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA16)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA18)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB14)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA15)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA19)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA20)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA21)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA22)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA23)},
|
||||
|
||||
// UART
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB17)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB16)},
|
||||
|
||||
// I2C
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13)},
|
||||
|
||||
// SPI
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB22)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB23)},
|
||||
|
||||
// Special named pins
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA15)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_LIGHT), MP_ROM_PTR(&pin_PB04)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_ACCELEROMETER_INTERRUPT), MP_ROM_PTR(&pin_PB14)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_PA02)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_SPEAKER_ENABLE), MP_ROM_PTR(&pin_PA27)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_LATCH), MP_ROM_PTR(&pin_PB00)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_OUT), MP_ROM_PTR(&pin_PB30)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_CLOCK), MP_ROM_PTR(&pin_PB31)},
|
||||
|
||||
// ESP control
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_ESP_CS), MP_ROM_PTR(&pin_PA14)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_ESP_GPIO0), MP_ROM_PTR(&pin_PA31)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_ESP_BUSY), MP_ROM_PTR(&pin_PA00)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_ESP_RESET), MP_ROM_PTR(&pin_PB12)},
|
||||
|
||||
// TFT control pins
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_TFT_LITE), MP_ROM_PTR(&pin_PA01)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_TFT_MOSI), MP_ROM_PTR(&pin_PB15)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_TFT_SCK), MP_ROM_PTR(&pin_PB13)},
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR_TFT_RST), MP_ROM_PTR(&pin_PB07)},
|
||||
{MP_ROM_QSTR(MP_QSTR_TFT_CS), MP_ROM_PTR(&pin_PB06)},
|
||||
{MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_PB05)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj)},
|
||||
{MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj)},
|
||||
{MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj)},
|
||||
|
||||
{MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)}};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -73,7 +73,6 @@ void board_init(void) {
|
||||
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
|
||||
common_hal_busio_spi_construct(spi, &pin_PB13, &pin_PB15, NULL);
|
||||
common_hal_busio_spi_never_reset(spi);
|
||||
common_hal_busio_spi_configure(spi, 24000000, 0, 0, 8);
|
||||
|
||||
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
|
||||
bus->base.type = &displayio_fourwire_type;
|
||||
@ -81,7 +80,8 @@ void board_init(void) {
|
||||
spi,
|
||||
&pin_PB05, // TFT_DC Command or data
|
||||
&pin_PB12, // TFT_CS Chip select
|
||||
&pin_PA00); // TFT_RST Reset
|
||||
&pin_PA00, // TFT_RST Reset
|
||||
60000000);
|
||||
|
||||
displayio_display_obj_t* display = &displays[0].display;
|
||||
display->base.type = &displayio_display_type;
|
||||
|
@ -20,4 +20,4 @@ CIRCUITPY_STAGE = 1
|
||||
# No touch on SAMD51 yet
|
||||
CIRCUITPY_TOUCHIO = 0
|
||||
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage/pybadge
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage/pygamer
|
||||
|
@ -63,8 +63,8 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TFT_RST), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_CS), MP_ROM_PTR(&pin_PB12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_PB05) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_JOYSTICK_X), MP_ROM_PTR(&pin_PB06) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_JOYSTICK_Y), MP_ROM_PTR(&pin_PB07) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_JOYSTICK_X), MP_ROM_PTR(&pin_PB07) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_JOYSTICK_Y), MP_ROM_PTR(&pin_PB06) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
|
92
ports/atmel-samd/boards/pygamer_advance/board.c
Normal file
92
ports/atmel-samd/boards/pygamer_advance/board.c
Normal file
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2019 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "boards/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
#include "shared-bindings/busio/SPI.h"
|
||||
#include "shared-bindings/displayio/FourWire.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
#include "shared-module/displayio/mipi_constants.h"
|
||||
#include "tick.h"
|
||||
|
||||
displayio_fourwire_obj_t board_display_obj;
|
||||
|
||||
#define DELAY 0x80
|
||||
|
||||
uint8_t display_init_sequence[] = {
|
||||
0x01, 0 | DELAY, 150, // SWRESET
|
||||
0x11, 0 | DELAY, 255, // SLPOUT
|
||||
0x36, 1, 0x00, // _MADCTL bottom to top refresh in vsync aligned order.
|
||||
0x3a, 1, 0x55, // COLMOD - 16bit color
|
||||
0x21, 0 | DELAY, 10, // _INVON
|
||||
0x13, 0 | DELAY, 10, // _NORON
|
||||
0x29, 0 | DELAY, 255, // _DISPON
|
||||
};
|
||||
|
||||
void board_init(void) {
|
||||
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
|
||||
common_hal_busio_spi_construct(spi, &pin_PB13, &pin_PB12, NULL);
|
||||
common_hal_busio_spi_never_reset(spi);
|
||||
|
||||
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
|
||||
bus->base.type = &displayio_fourwire_type;
|
||||
common_hal_displayio_fourwire_construct(bus,
|
||||
spi,
|
||||
&pin_PA00, // TFT_DC Command or data
|
||||
&pin_PB15, // TFT_CS Chip select
|
||||
&pin_PB05, // TFT_RST Reset
|
||||
60000000);
|
||||
|
||||
displayio_display_obj_t* display = &displays[0].display;
|
||||
display->base.type = &displayio_display_type;
|
||||
common_hal_displayio_display_construct(display,
|
||||
bus,
|
||||
320, // Width (after rotation)
|
||||
240, // Height (after rotation)
|
||||
0, // column start
|
||||
0, // row start
|
||||
90, // rotation
|
||||
16, // Color depth
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
0x37, // set vertical scroll command
|
||||
display_init_sequence,
|
||||
sizeof(display_init_sequence),
|
||||
&pin_PA01, // backlight pin
|
||||
1.0f, // brightness (ignored)
|
||||
true, // auto_brightness
|
||||
false, // single_byte_bounds
|
||||
false); // data_as_commands
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
}
|
36
ports/atmel-samd/boards/pygamer_advance/mpconfigboard.h
Normal file
36
ports/atmel-samd/boards/pygamer_advance/mpconfigboard.h
Normal file
@ -0,0 +1,36 @@
|
||||
#define MICROPY_HW_BOARD_NAME "Adafruit PyGamer"
|
||||
#define MICROPY_HW_MCU_NAME "samd51j20"
|
||||
|
||||
#define CIRCUITPY_MCU_FAMILY samd51
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA23)
|
||||
|
||||
// These are pins not to reset.
|
||||
// QSPI Data pins
|
||||
#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11)
|
||||
// DotStar pins, QSPI CS, and QSPI SCK
|
||||
#define MICROPY_PORT_B (PORT_PB10 | PORT_PB11)
|
||||
#define MICROPY_PORT_C (0)
|
||||
#define MICROPY_PORT_D (0)
|
||||
|
||||
#define AUTORESET_DELAY_MS 500
|
||||
|
||||
// If you change this, then make sure to update the linker scripts as well to
|
||||
// make sure you don't overwrite code
|
||||
#define CIRCUITPY_INTERNAL_NVM_SIZE 8192
|
||||
|
||||
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PA13)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PA12)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PA17)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PB23)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PB22)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB17)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB16)
|
||||
|
||||
// USB is always used internally so skip the pin objects for it.
|
||||
#define IGNORE_PIN_PA24 1
|
||||
#define IGNORE_PIN_PA25 1
|
23
ports/atmel-samd/boards/pygamer_advance/mpconfigboard.mk
Normal file
23
ports/atmel-samd/boards/pygamer_advance/mpconfigboard.mk
Normal file
@ -0,0 +1,23 @@
|
||||
LD_FILE = boards/samd51x19-bootloader-external-flash.ld
|
||||
USB_VID = 0x239A
|
||||
USB_PID = 0x803E
|
||||
USB_PRODUCT = "PyGamer Advance"
|
||||
USB_MANUFACTURER = "Adafruit Industries LLC"
|
||||
|
||||
CHIP_VARIANT = SAMD51J20A
|
||||
CHIP_FAMILY = samd51
|
||||
|
||||
QSPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
CIRCUITPY_GAMEPAD = 1
|
||||
CIRCUITPY_GAMEPADSHIFT = 1
|
||||
CIRCUITPY_STAGE = 1
|
||||
# No touch on SAMD51 yet
|
||||
CIRCUITPY_TOUCHIO = 0
|
||||
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage/pybadge
|
75
ports/atmel-samd/boards/pygamer_advance/pins.c
Normal file
75
ports/atmel-samd/boards/pygamer_advance/pins.c
Normal file
@ -0,0 +1,75 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
#include "boards/board.h"
|
||||
#include "shared-module/displayio/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A6), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A7), MP_ROM_PTR(&pin_PB04) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A8), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_A9), MP_ROM_PTR(&pin_PB02) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB17) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB16) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA23) },
|
||||
|
||||
// UART
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB17) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB16) },
|
||||
|
||||
// I2C
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) },
|
||||
|
||||
// SPI
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB23) },
|
||||
|
||||
// SDCS, dup of D4
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PA14) },
|
||||
|
||||
// Special named pins
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_LIGHT), MP_ROM_PTR(&pin_PB04) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_ACCELEROMETER_INTERRUPT), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SPEAKER), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_SPEAKER_ENABLE), MP_ROM_PTR(&pin_PA27) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_LATCH), MP_ROM_PTR(&pin_PB00) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_OUT), MP_ROM_PTR(&pin_PB30) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_CLOCK), MP_ROM_PTR(&pin_PB31) },
|
||||
|
||||
// TFT control pins
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TFT_LITE), MP_ROM_PTR(&pin_PA01) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TFT_MOSI), MP_ROM_PTR(&pin_PB12) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TFT_SCK), MP_ROM_PTR(&pin_PB13) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_TFT_RST), MP_ROM_PTR(&pin_PB05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_CS), MP_ROM_PTR(&pin_PB15) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_JOYSTICK_X), MP_ROM_PTR(&pin_PB07) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_JOYSTICK_Y), MP_ROM_PTR(&pin_PB06) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)}
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -74,12 +74,12 @@ void board_init(void) {
|
||||
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
|
||||
bus->base.type = &displayio_fourwire_type;
|
||||
busio_spi_obj_t *spi = common_hal_board_create_spi();
|
||||
common_hal_busio_spi_configure(spi, 24000000, 0, 0, 8);
|
||||
common_hal_displayio_fourwire_construct(bus,
|
||||
spi,
|
||||
&pin_PA09, // Command or data
|
||||
&pin_PA08, // Chip select
|
||||
NULL); // Reset
|
||||
NULL, // Reset
|
||||
24000000);
|
||||
|
||||
displayio_display_obj_t* display = &displays[0].display;
|
||||
display->base.type = &displayio_display_type;
|
||||
|
1147
ports/atmel-samd/boards/ugame10/brutalist-6.bdf
Normal file
1147
ports/atmel-samd/boards/ugame10/brutalist-6.bdf
Normal file
File diff suppressed because it is too large
Load Diff
1034
ports/atmel-samd/boards/ugame10/brutalist.sfd
Normal file
1034
ports/atmel-samd/boards/ugame10/brutalist.sfd
Normal file
File diff suppressed because it is too large
Load Diff
@ -31,4 +31,4 @@ CIRCUITPY_PIXELBUF = 0
|
||||
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage/ugame10
|
||||
|
||||
CIRCUITPY_DISPLAY_FONT = "../../tools/Tecate-bitmap-fonts/bitmap/phallus/lemon.bdf"
|
||||
CIRCUITPY_DISPLAY_FONT = $(TOP)/ports/atmel-samd/boards/ugame10/brutalist-6.bdf
|
||||
|
@ -55,7 +55,7 @@ static void usart_async_rxc_callback(const struct usart_async_descriptor *const
|
||||
void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
const mcu_pin_obj_t * tx, const mcu_pin_obj_t * rx, uint32_t baudrate,
|
||||
uint8_t bits, uart_parity_t parity, uint8_t stop, mp_float_t timeout,
|
||||
uint8_t receiver_buffer_size) {
|
||||
uint16_t receiver_buffer_size) {
|
||||
Sercom* sercom = NULL;
|
||||
uint8_t sercom_index = 255; // Unset index
|
||||
uint32_t rx_pinmux = 0;
|
||||
@ -88,11 +88,19 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
continue;
|
||||
}
|
||||
potential_sercom = sercom_insts[sercom_index];
|
||||
if (potential_sercom->USART.CTRLA.bit.ENABLE != 0 ||
|
||||
#ifdef SAMD21
|
||||
if (potential_sercom->USART.CTRLA.bit.ENABLE != 0 ||
|
||||
!(tx->sercom[i].pad == 0 ||
|
||||
tx->sercom[i].pad == 2)) {
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
#ifdef SAMD51
|
||||
if (potential_sercom->USART.CTRLA.bit.ENABLE != 0 ||
|
||||
!(tx->sercom[i].pad == 0)) {
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
tx_pinmux = PINMUX(tx->number, (i == 0) ? MUX_C : MUX_D);
|
||||
tx_pad = tx->sercom[i].pad;
|
||||
if (rx == mp_const_none) {
|
||||
|
@ -40,7 +40,7 @@ extern UartDevice UartDev;
|
||||
void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
const mcu_pin_obj_t * tx, const mcu_pin_obj_t * rx, uint32_t baudrate,
|
||||
uint8_t bits, uart_parity_t parity, uint8_t stop, mp_float_t timeout,
|
||||
uint8_t receiver_buffer_size) {
|
||||
uint16_t receiver_buffer_size) {
|
||||
if (rx != mp_const_none || tx != &pin_GPIO2) {
|
||||
nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, translate("Only tx supported on UART1 (GPIO2).")));
|
||||
}
|
||||
|
@ -131,7 +131,7 @@ void uart_reset(void) {
|
||||
void common_hal_busio_uart_construct (busio_uart_obj_t *self,
|
||||
const mcu_pin_obj_t * tx, const mcu_pin_obj_t * rx, uint32_t baudrate,
|
||||
uint8_t bits, uart_parity_t parity, uint8_t stop, mp_float_t timeout,
|
||||
uint8_t receiver_buffer_size) {
|
||||
uint16_t receiver_buffer_size) {
|
||||
// Find a free UART peripheral.
|
||||
self->uarte = NULL;
|
||||
for (size_t i = 0 ; i < MP_ARRAY_SIZE(nrfx_uartes); i++) {
|
||||
|
@ -111,18 +111,23 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout
|
||||
//
|
||||
// If there is not enough memory, we will fall back to cycle counter
|
||||
// using DWT
|
||||
uint32_t pattern_size = numBytes * 8 * sizeof(uint16_t) + 2 * sizeof(uint16_t);
|
||||
|
||||
#define PATTERN_SIZE(numBytes) (numBytes * 8 * sizeof(uint16_t) + 2 * sizeof(uint16_t))
|
||||
|
||||
uint32_t pattern_size = PATTERN_SIZE(numBytes);
|
||||
uint16_t* pixels_pattern = NULL;
|
||||
bool pattern_on_heap = false;
|
||||
|
||||
// Use the stack to store 1 pixels worth of PWM data for the status led. uint32_t to ensure alignment.
|
||||
uint32_t one_pixel[8 * sizeof(uint16_t) + 1];
|
||||
// Make it at least as big as PATTERN_SIZE(3), for one pixel of RGB data.
|
||||
// PATTERN_SIZE is a multiple of 4, so we don't need round up to make sure one_pixel is large enough.
|
||||
uint32_t one_pixel[PATTERN_SIZE(3)/sizeof(uint32_t)];
|
||||
|
||||
NRF_PWM_Type* pwm = find_free_pwm();
|
||||
|
||||
// only malloc if there is PWM device available
|
||||
if ( pwm != NULL ) {
|
||||
if (pattern_size <= sizeof(one_pixel) * sizeof(uint32_t)) {
|
||||
if (pattern_size <= sizeof(one_pixel)) {
|
||||
pixels_pattern = (uint16_t *) one_pixel;
|
||||
} else {
|
||||
pixels_pattern = (uint16_t *) m_malloc_maybe(pattern_size, false);
|
||||
|
@ -142,11 +142,12 @@ mp_obj_t mp_make_function_from_raw_code(const mp_raw_code_t *rc, mp_obj_t def_ar
|
||||
fun = mp_obj_new_fun_asm(rc->n_pos_args, rc->data.u_native.fun_data, rc->data.u_native.type_sig);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
// rc->kind should always be set and BYTECODE is the only remaining case
|
||||
assert(rc->kind == MP_CODE_BYTECODE);
|
||||
case MP_CODE_BYTECODE:
|
||||
fun = mp_obj_new_fun_bc(def_args, def_kw_args, rc->data.u_byte.bytecode, rc->data.u_byte.const_table);
|
||||
break;
|
||||
default:
|
||||
// All other kinds are invalid.
|
||||
mp_raise_RuntimeError(translate("Corrupt raw code"));
|
||||
}
|
||||
|
||||
// check for generator functions and if so wrap in generator object
|
||||
|
@ -102,20 +102,35 @@ STATIC void extract_prelude(const byte **ip, const byte **ip2, bytecode_prelude_
|
||||
|
||||
#include "py/parsenum.h"
|
||||
|
||||
STATIC void raise_corrupt_mpy(void) {
|
||||
mp_raise_RuntimeError(translate("Corrupt .mpy file"));
|
||||
}
|
||||
|
||||
STATIC int read_byte(mp_reader_t *reader) {
|
||||
return reader->readbyte(reader->data);
|
||||
mp_uint_t b = reader->readbyte(reader->data);
|
||||
if (b == MP_READER_EOF) {
|
||||
raise_corrupt_mpy();
|
||||
}
|
||||
return b;
|
||||
}
|
||||
|
||||
STATIC void read_bytes(mp_reader_t *reader, byte *buf, size_t len) {
|
||||
while (len-- > 0) {
|
||||
*buf++ = reader->readbyte(reader->data);
|
||||
mp_uint_t b =reader->readbyte(reader->data);
|
||||
if (b == MP_READER_EOF) {
|
||||
raise_corrupt_mpy();
|
||||
}
|
||||
*buf++ = b;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC size_t read_uint(mp_reader_t *reader) {
|
||||
size_t unum = 0;
|
||||
for (;;) {
|
||||
byte b = reader->readbyte(reader->data);
|
||||
mp_uint_t b = reader->readbyte(reader->data);
|
||||
if (b == MP_READER_EOF) {
|
||||
raise_corrupt_mpy();
|
||||
}
|
||||
unum = (unum << 7) | (b & 0x7f);
|
||||
if ((b & 0x80) == 0) {
|
||||
break;
|
||||
@ -145,11 +160,12 @@ STATIC mp_obj_t load_obj(mp_reader_t *reader) {
|
||||
return mp_obj_new_str_from_vstr(obj_type == 's' ? &mp_type_str : &mp_type_bytes, &vstr);
|
||||
} else if (obj_type == 'i') {
|
||||
return mp_parse_num_integer(vstr.buf, vstr.len, 10, NULL);
|
||||
} else {
|
||||
assert(obj_type == 'f' || obj_type == 'c');
|
||||
} else if (obj_type == 'f' || obj_type == 'c') {
|
||||
return mp_parse_num_decimal(vstr.buf, vstr.len, obj_type == 'c', false, NULL);
|
||||
}
|
||||
}
|
||||
raise_corrupt_mpy();
|
||||
return MP_OBJ_FROM_PTR(&mp_const_none_obj);
|
||||
}
|
||||
|
||||
STATIC void load_bytecode_qstrs(mp_reader_t *reader, byte *ip, byte *ip_top) {
|
||||
|
@ -42,7 +42,7 @@ typedef enum {
|
||||
extern void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
const mcu_pin_obj_t * tx, const mcu_pin_obj_t * rx, uint32_t baudrate,
|
||||
uint8_t bits, uart_parity_t parity, uint8_t stop, mp_float_t timeout,
|
||||
uint8_t receiver_buffer_size);
|
||||
uint16_t receiver_buffer_size);
|
||||
|
||||
extern void common_hal_busio_uart_deinit(busio_uart_obj_t *self);
|
||||
extern bool common_hal_busio_uart_deinited(busio_uart_obj_t *self);
|
||||
|
@ -49,8 +49,8 @@
|
||||
//| =========================================================
|
||||
//|
|
||||
//| A DigitalInOut is used to digitally control I/O pins. For analog control of
|
||||
//| a pin, see the :py:class:`~digitalio.AnalogIn` and
|
||||
//| :py:class:`~digitalio.AnalogOut` classes.
|
||||
//| a pin, see the :py:class:`analogio.AnalogIn` and
|
||||
//| :py:class:`analogio.AnalogOut` classes.
|
||||
//|
|
||||
|
||||
//| .. class:: DigitalInOut(pin)
|
||||
|
@ -43,7 +43,7 @@
|
||||
//| :class:`Direction` -- defines the direction of a digital pin
|
||||
//| =============================================================
|
||||
//|
|
||||
//| .. class:: digitalio.DigitalInOut.Direction
|
||||
//| .. class:: Direction
|
||||
//|
|
||||
//| Enum-like class to define which direction the digital values are
|
||||
//| going.
|
||||
|
@ -31,7 +31,7 @@
|
||||
//| :class:`DriveMode` -- defines the drive mode of a digital pin
|
||||
//| =============================================================
|
||||
//|
|
||||
//| .. class:: digitalio.DriveMode
|
||||
//| .. class:: DriveMode
|
||||
//|
|
||||
//| Enum-like class to define the drive mode used when outputting
|
||||
//| digital values.
|
||||
|
@ -31,7 +31,7 @@
|
||||
//| :class:`Pull` -- defines the pull of a digital input pin
|
||||
//| =============================================================
|
||||
//|
|
||||
//| .. class:: digitalio.Pull
|
||||
//| .. class:: Pull
|
||||
//|
|
||||
//| Enum-like class to define the pull value, if any, used while reading
|
||||
//| digital values in.
|
||||
|
@ -78,7 +78,8 @@
|
||||
//| The initialization sequence should always leave the display memory access inline with the scan
|
||||
//| of the display to minimize tearing artifacts.
|
||||
//|
|
||||
//| :param displayio.FourWire or displayio.ParallelBus display_bus: The bus that the display is connected to
|
||||
//| :param display_bus: The bus that the display is connected to
|
||||
//| :type display_bus: displayio.FourWire or displayio.ParallelBus
|
||||
//| :param buffer init_sequence: Byte-packed initialization sequence.
|
||||
//| :param int width: Width in pixels
|
||||
//| :param int height: Height in pixels
|
||||
@ -182,6 +183,7 @@ static displayio_display_obj_t* native_display(mp_obj_t display_obj) {
|
||||
//| Switches to displaying the given group of layers. When group is None, the default
|
||||
//| CircuitPython terminal will be shown.
|
||||
//|
|
||||
//| :param Group group: The group to show.
|
||||
STATIC mp_obj_t displayio_display_obj_show(mp_obj_t self_in, mp_obj_t group_in) {
|
||||
displayio_display_obj_t *self = native_display(self_in);
|
||||
displayio_group_t* group = NULL;
|
||||
|
@ -46,7 +46,7 @@
|
||||
//| Manage updating a display over SPI four wire protocol in the background while Python code runs.
|
||||
//| It doesn't handle display initialization.
|
||||
//|
|
||||
//| .. class:: FourWire(spi_bus, *, command, chip_select, reset=None)
|
||||
//| .. class:: FourWire(spi_bus, *, command, chip_select, reset=None, baudrate=24000000)
|
||||
//|
|
||||
//| Create a FourWire object associated with the given pins.
|
||||
//|
|
||||
@ -59,14 +59,16 @@
|
||||
//| :param microcontroller.Pin command: Data or command pin
|
||||
//| :param microcontroller.Pin chip_select: Chip select pin
|
||||
//| :param microcontroller.Pin reset: Reset pin. When None only software reset can be used
|
||||
//| :param int baudrate: Maximum baudrate in Hz for the display on the bus
|
||||
//|
|
||||
STATIC mp_obj_t displayio_fourwire_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
enum { ARG_spi_bus, ARG_command, ARG_chip_select, ARG_reset };
|
||||
enum { ARG_spi_bus, ARG_command, ARG_chip_select, ARG_reset, ARG_baudrate };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_spi_bus, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||
{ MP_QSTR_command, MP_ARG_OBJ | MP_ARG_KW_ONLY | MP_ARG_REQUIRED },
|
||||
{ MP_QSTR_chip_select, MP_ARG_OBJ | MP_ARG_KW_ONLY | MP_ARG_REQUIRED },
|
||||
{ MP_QSTR_reset, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} },
|
||||
{ MP_QSTR_baudrate, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 24000000} },
|
||||
};
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
@ -97,7 +99,7 @@ STATIC mp_obj_t displayio_fourwire_make_new(const mp_obj_type_t *type, size_t n_
|
||||
}
|
||||
|
||||
common_hal_displayio_fourwire_construct(self,
|
||||
MP_OBJ_TO_PTR(spi), command, chip_select, reset);
|
||||
MP_OBJ_TO_PTR(spi), command, chip_select, reset, args[ARG_baudrate].u_int);
|
||||
return self;
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ extern const mp_obj_type_t displayio_fourwire_type;
|
||||
|
||||
void common_hal_displayio_fourwire_construct(displayio_fourwire_obj_t* self,
|
||||
busio_spi_obj_t* spi, const mcu_pin_obj_t* command,
|
||||
const mcu_pin_obj_t* chip_select, const mcu_pin_obj_t* reset);
|
||||
const mcu_pin_obj_t* chip_select, const mcu_pin_obj_t* reset, uint32_t baudrate);
|
||||
|
||||
void common_hal_displayio_fourwire_deinit(displayio_fourwire_obj_t* self);
|
||||
|
||||
|
@ -295,7 +295,7 @@ STATIC mp_obj_t group_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t valu
|
||||
if (value == MP_OBJ_SENTINEL) {
|
||||
// load
|
||||
return common_hal_displayio_group_get(self, index);
|
||||
} else if (value == mp_const_none) {
|
||||
} else if (value == MP_OBJ_NULL) {
|
||||
common_hal_displayio_group_pop(self, index);
|
||||
} else {
|
||||
common_hal_displayio_group_set(self, index, value);
|
||||
|
@ -37,7 +37,7 @@
|
||||
//|
|
||||
//| Named tuple used to capture a single glyph and its attributes.
|
||||
//|
|
||||
//| :param fontio.Bitmap bitmap: the bitmap including the glyph
|
||||
//| :param displayio.Bitmap bitmap: the bitmap including the glyph
|
||||
//| :param int tile_index: the tile index within the bitmap
|
||||
//| :param int width: the width of the glyph's bitmap
|
||||
//| :param int height: the height of the glyph's bitmap
|
||||
|
@ -31,13 +31,14 @@
|
||||
#include "py/gc.h"
|
||||
#include "shared-bindings/busio/SPI.h"
|
||||
#include "shared-bindings/digitalio/DigitalInOut.h"
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
#include "shared-bindings/time/__init__.h"
|
||||
|
||||
#include "tick.h"
|
||||
|
||||
void common_hal_displayio_fourwire_construct(displayio_fourwire_obj_t* self,
|
||||
busio_spi_obj_t* spi, const mcu_pin_obj_t* command,
|
||||
const mcu_pin_obj_t* chip_select, const mcu_pin_obj_t* reset) {
|
||||
const mcu_pin_obj_t* chip_select, const mcu_pin_obj_t* reset, uint32_t baudrate) {
|
||||
|
||||
self->bus = spi;
|
||||
common_hal_busio_spi_never_reset(self->bus);
|
||||
@ -45,7 +46,7 @@ void common_hal_displayio_fourwire_construct(displayio_fourwire_obj_t* self,
|
||||
// of the heap as well.
|
||||
gc_never_free(self->bus);
|
||||
|
||||
self->frequency = common_hal_busio_spi_get_frequency(spi);
|
||||
self->frequency = baudrate;
|
||||
self->polarity = common_hal_busio_spi_get_polarity(spi);
|
||||
self->phase = common_hal_busio_spi_get_phase(spi);
|
||||
|
||||
@ -89,7 +90,7 @@ void common_hal_displayio_fourwire_send(mp_obj_t obj, bool command, uint8_t *dat
|
||||
displayio_fourwire_obj_t* self = MP_OBJ_TO_PTR(obj);
|
||||
if (command) {
|
||||
common_hal_digitalio_digitalinout_set_value(&self->chip_select, true);
|
||||
common_hal_time_delay_ms(1);
|
||||
common_hal_mcu_delay_us(1);
|
||||
common_hal_digitalio_digitalinout_set_value(&self->chip_select, false);
|
||||
}
|
||||
common_hal_digitalio_digitalinout_set_value(&self->command, !command);
|
||||
|
@ -219,10 +219,19 @@ void common_hal_displayio_tilegrid_set_tile(displayio_tilegrid_t *self, uint16_t
|
||||
} else {
|
||||
tile_area = &temp_area;
|
||||
}
|
||||
tile_area->x1 = x * self->tile_width;
|
||||
int16_t tx = (x - self->top_left_x) % self->width_in_tiles;
|
||||
if (tx < 0) {
|
||||
tx += self->width_in_tiles;
|
||||
}
|
||||
tile_area->x1 = tx * self->tile_width;
|
||||
tile_area->x2 = tile_area->x1 + self->tile_width;
|
||||
tile_area->y1 = y * self->tile_height;
|
||||
int16_t ty = (y - self->top_left_y) % self->height_in_tiles;
|
||||
if (ty < 0) {
|
||||
ty += self->height_in_tiles;
|
||||
}
|
||||
tile_area->y1 = ty * self->tile_height;
|
||||
tile_area->y2 = tile_area->y1 + self->tile_height;
|
||||
|
||||
if (self->partial_change) {
|
||||
displayio_area_expand(&self->dirty_area, &temp_area);
|
||||
}
|
||||
|
@ -71,6 +71,8 @@ void supervisor_start_terminal(uint16_t width_px, uint16_t height_px) {
|
||||
if (tiles == NULL) {
|
||||
return;
|
||||
}
|
||||
grid->y = 0;
|
||||
grid->top_left_y = 0;
|
||||
if (remaining_pixels > 0) {
|
||||
grid->y -= (grid->tile_height - remaining_pixels);
|
||||
}
|
||||
|
@ -99,6 +99,9 @@ void filesystem_init(bool create_allowed, bool force_create) {
|
||||
make_empty_file(&vfs_fat->fatfs, "/.Trashes");
|
||||
make_empty_file(&vfs_fat->fatfs, "/.fseventsd/no_log");
|
||||
|
||||
// create empty lib directory
|
||||
f_mkdir(&vfs_fat->fatfs, "/lib");
|
||||
|
||||
// and ensure everything is flushed
|
||||
supervisor_flash_flush();
|
||||
} else if (res != FR_OK) {
|
||||
|
@ -59,8 +59,8 @@ for i in range(len(user_files)):
|
||||
mod = 'mod%u' % i
|
||||
try:
|
||||
__import__(mod)
|
||||
except ValueError as er:
|
||||
print(mod, 'ValueError', er)
|
||||
except Exception as e:
|
||||
print(mod, type(e).__name__, e)
|
||||
|
||||
# unmount and undo path addition
|
||||
uos.umount('/userfs')
|
||||
|
@ -1,3 +1,3 @@
|
||||
mod0 ValueError Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/mpy-update for more info.
|
||||
mod1 ValueError Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/mpy-update for more info.
|
||||
mod2 ValueError Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/mpy-update for more info.
|
||||
mod0 RuntimeError Corrupt .mpy file
|
||||
mod1 RuntimeError Corrupt .mpy file
|
||||
mod2 MpyError Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/mpy-update for more info.
|
||||
|
@ -29,7 +29,6 @@ class BitmapStub:
|
||||
self.rows[y] = bytes(row)
|
||||
|
||||
f = bitmap_font.load_font(args.font, BitmapStub)
|
||||
real_bb = [0, 0]
|
||||
|
||||
# Load extra characters from the sample file.
|
||||
sample_characters = set()
|
||||
@ -61,13 +60,11 @@ for c in all_characters:
|
||||
print("Font missing character:", c, ord(c))
|
||||
filtered_characters = filtered_characters.replace(c, "")
|
||||
continue
|
||||
x, y, dx, dy = g["bounds"]
|
||||
if g["shift"][1] != 0:
|
||||
raise RuntimeError("y shift")
|
||||
real_bb[0] = max(real_bb[0], x - dx)
|
||||
real_bb[1] = max(real_bb[1], y - dy)
|
||||
|
||||
tile_x, tile_y = real_bb
|
||||
x, y, dx, dy = f.get_bounding_box()
|
||||
tile_x, tile_y = x - dx, y - dy
|
||||
total_bits = tile_x * len(all_characters)
|
||||
total_bits += 32 - total_bits % 32
|
||||
bytes_per_row = total_bits // 8
|
||||
|
Loading…
x
Reference in New Issue
Block a user