Merge pull request #3034 from jepler/terminology-cleanup
M/S Terminology cleanup
This commit is contained in:
commit
bc4c74517a
@ -1,6 +1,6 @@
|
|||||||
# Contributing
|
# Contributing
|
||||||
Please note that this project is released with a
|
Please note that this project is released with a
|
||||||
[Contributor Code of Conduct](https://github.com/adafruit/circuitpython/blob/master/CODE_OF_CONDUCT.md).
|
[Contributor Code of Conduct](https://github.com/adafruit/circuitpython/blob/main/CODE_OF_CONDUCT.md).
|
||||||
By participating in this project you agree to abide by its terms. Participation
|
By participating in this project you agree to abide by its terms. Participation
|
||||||
covers any forum used to converse about CircuitPython including unofficial and official spaces. Failure to do
|
covers any forum used to converse about CircuitPython including unofficial and official spaces. Failure to do
|
||||||
so will result in corrective actions such as time out or ban from the project.
|
so will result in corrective actions such as time out or ban from the project.
|
||||||
|
11
README.rst
11
README.rst
@ -55,12 +55,12 @@ Contributing
|
|||||||
------------
|
------------
|
||||||
|
|
||||||
See
|
See
|
||||||
`CONTRIBUTING.md <https://github.com/adafruit/circuitpython/blob/master/CONTRIBUTING.md>`__
|
`CONTRIBUTING.md <https://github.com/adafruit/circuitpython/blob/main/CONTRIBUTING.md>`__
|
||||||
for full guidelines but please be aware that by contributing to this
|
for full guidelines but please be aware that by contributing to this
|
||||||
project you are agreeing to the `Code of
|
project you are agreeing to the `Code of
|
||||||
Conduct <https://github.com/adafruit/circuitpython/blob/master/CODE_OF_CONDUCT.md>`__.
|
Conduct <https://github.com/adafruit/circuitpython/blob/main/CODE_OF_CONDUCT.md>`__.
|
||||||
Contributors who follow the `Code of
|
Contributors who follow the `Code of
|
||||||
Conduct <https://github.com/adafruit/circuitpython/blob/master/CODE_OF_CONDUCT.md>`__
|
Conduct <https://github.com/adafruit/circuitpython/blob/main/CODE_OF_CONDUCT.md>`__
|
||||||
are welcome to submit pull requests and they will be promptly reviewed
|
are welcome to submit pull requests and they will be promptly reviewed
|
||||||
by project admins. Please join the
|
by project admins. Please join the
|
||||||
`Discord <https://adafru.it/discord>`__ too.
|
`Discord <https://adafru.it/discord>`__ too.
|
||||||
@ -96,7 +96,6 @@ CircuitPython:
|
|||||||
|
|
||||||
- Supports native USB on all boards, allowing file editing without special tools.
|
- Supports native USB on all boards, allowing file editing without special tools.
|
||||||
- Supports only SAMD21, SAMD51, nRF52840, CXD56, STM32F4 and i.MX RT ports.
|
- Supports only SAMD21, SAMD51, nRF52840, CXD56, STM32F4 and i.MX RT ports.
|
||||||
- Tracks MicroPython's releases (not master).
|
|
||||||
- Floats (aka decimals) are enabled for all builds.
|
- Floats (aka decimals) are enabled for all builds.
|
||||||
- Error messages are translated into 10+ languages.
|
- Error messages are translated into 10+ languages.
|
||||||
- Does not support concurrency within Python (including interrupts and threading). Some concurrency
|
- Does not support concurrency within Python (including interrupts and threading). Some concurrency
|
||||||
@ -211,8 +210,8 @@ The remaining port directories not listed above are in the repo to maintain comp
|
|||||||
|
|
||||||
`back to top <#circuitpython>`__
|
`back to top <#circuitpython>`__
|
||||||
|
|
||||||
.. |Build Status| image:: https://travis-ci.com/adafruit/circuitpython.svg?branch=master
|
.. |Build Status| image:: https://github.com/adafruit/circuitpython/workflows/Build%20CI/badge.svg
|
||||||
:target: https://travis-ci.org/adafruit/circuitpython
|
:target: https://github.com/adafruit/circuitpython/actions?query=branch%3Amain
|
||||||
.. |Doc Status| image:: https://readthedocs.org/projects/circuitpython/badge/?version=latest
|
.. |Doc Status| image:: https://readthedocs.org/projects/circuitpython/badge/?version=latest
|
||||||
:target: http://circuitpython.readthedocs.io/
|
:target: http://circuitpython.readthedocs.io/
|
||||||
.. |Discord| image:: https://img.shields.io/discord/327254708534116352.svg
|
.. |Discord| image:: https://img.shields.io/discord/327254708534116352.svg
|
||||||
|
@ -5,7 +5,7 @@ The latest documentation can be found at:
|
|||||||
http://circuitpython.readthedocs.io/en/latest/
|
http://circuitpython.readthedocs.io/en/latest/
|
||||||
|
|
||||||
The documentation you see there is generated from the files in the whole tree:
|
The documentation you see there is generated from the files in the whole tree:
|
||||||
https://github.com/adafruit/circuitpython/tree/master
|
https://github.com/adafruit/circuitpython/tree/main
|
||||||
|
|
||||||
Building the documentation locally
|
Building the documentation locally
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
|
.. role:: strike
|
||||||
|
|
||||||
Design Guide
|
Design Guide
|
||||||
============
|
============
|
||||||
|
|
||||||
This guide covers a variety of development practices for CircuitPython core and library APIs. These
|
This guide covers a variety of development practices for CircuitPython core and library APIs. These
|
||||||
APIs are both `built-into CircuitPython
|
APIs are both `built-into CircuitPython
|
||||||
<https://github.com/adafruit/circuitpython/tree/master/shared-bindings>`_ and those that are
|
<https://github.com/adafruit/circuitpython/tree/main/shared-bindings>`_ and those that are
|
||||||
`distributed on GitHub <https://github.com/search?utf8=%E2%9C%93&q=topic%3Acircuitpython&type=>`_
|
`distributed on GitHub <https://github.com/search?utf8=%E2%9C%93&q=topic%3Acircuitpython&type=>`_
|
||||||
and in the `Adafruit <https://github.com/adafruit/Adafruit_CircuitPython_Bundle>`_ and `Community
|
and in the `Adafruit <https://github.com/adafruit/Adafruit_CircuitPython_Bundle>`_ and `Community
|
||||||
<https://github.com/adafruit/CircuitPython_Community_Bundle/>`_ bundles. Consistency with these
|
<https://github.com/adafruit/CircuitPython_Community_Bundle/>`_ bundles. Consistency with these
|
||||||
@ -46,6 +48,41 @@ not have the ``adafruit_`` module or package prefix.
|
|||||||
|
|
||||||
Both should have the CircuitPython repository topic on GitHub.
|
Both should have the CircuitPython repository topic on GitHub.
|
||||||
|
|
||||||
|
Terminology
|
||||||
|
-----------
|
||||||
|
|
||||||
|
As our Code of Conduct states, we strive to use "welcoming and inclusive
|
||||||
|
language." Whether it is in documentation or in code, the words we use matter.
|
||||||
|
This means we disfavor language that due to historical and social context can
|
||||||
|
make community members and potential community members feel unwelcome.
|
||||||
|
|
||||||
|
There are specific terms to avoid except where technical limitations require it.
|
||||||
|
While specific cases may call for other terms, consider using these suggested
|
||||||
|
terms first:
|
||||||
|
|
||||||
|
+--------------------+---------------------+
|
||||||
|
| Preferred | Deprecated |
|
||||||
|
+====================+=====================+
|
||||||
|
| Main (device) | :strike:`Master` |
|
||||||
|
+--------------------+---------------------+
|
||||||
|
| Peripheral | :strike:`Slave` |
|
||||||
|
+--------------------+ +
|
||||||
|
| Sensor | |
|
||||||
|
+--------------------+ +
|
||||||
|
| Secondary (device) | |
|
||||||
|
+--------------------+---------------------+
|
||||||
|
| Denylist | :strike:`Blacklist` |
|
||||||
|
+--------------------+---------------------+
|
||||||
|
| Allowlist | :strike:`Whitelist` |
|
||||||
|
+--------------------+---------------------+
|
||||||
|
|
||||||
|
Note that "technical limitations" refers e.g., to the situation where an
|
||||||
|
upstream library or URL has to contain those substrings in order to work.
|
||||||
|
However, when it comes to documentation and the names of parameters and
|
||||||
|
properties in CircuitPython, we will use alternate terms even if this breaks
|
||||||
|
tradition with past practice.
|
||||||
|
|
||||||
|
|
||||||
.. _lifetime-and-contextmanagers:
|
.. _lifetime-and-contextmanagers:
|
||||||
|
|
||||||
Lifetime and ContextManagers
|
Lifetime and ContextManagers
|
||||||
|
@ -64,7 +64,7 @@ as a natural "TODO" list. An example minimal build list is shown below:
|
|||||||
CIRCUITPY_ROTARYIO = 0
|
CIRCUITPY_ROTARYIO = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0 # Requires SPI, PulseIO (stub ok)
|
CIRCUITPY_DISPLAYIO = 0 # Requires SPI, PulseIO (stub ok)
|
||||||
|
|
||||||
# These modules are implemented in shared-module/ - they can be included in
|
# These modules are implemented in shared-module/ - they can be included in
|
||||||
|
@ -32,8 +32,8 @@ shared-bindings/pulseio/PWMOut.rst shared-bindings/pulseio/#pulseio.PWMOut
|
|||||||
shared-bindings/pulseio/PulseIn.rst shared-bindings/pulseio/#pulseio.PulseIn
|
shared-bindings/pulseio/PulseIn.rst shared-bindings/pulseio/#pulseio.PulseIn
|
||||||
shared-bindings/pulseio/PulseOut.rst shared-bindings/pulseio/#pulseio.PulseOut
|
shared-bindings/pulseio/PulseOut.rst shared-bindings/pulseio/#pulseio.PulseOut
|
||||||
shared-bindings/time/struct_time.rst shared-bindings/time/#time.struct_time
|
shared-bindings/time/struct_time.rst shared-bindings/time/#time.struct_time
|
||||||
shared-bindings/i2cslave/I2CSlave.rst shared-bindings/i2cslave/#i2cslave.I2CSlave
|
shared-bindings/i2cslave/I2CSlave.rst shared-bindings/i2cperipheral/#i2cperipheral.I2CPeripheral
|
||||||
shared-bindings/i2cslave/I2CSlaveRequest.rst shared-bindings/i2cslave/#i2cslave.I2CSlaveRequest
|
shared-bindings/i2cslave/I2CSlaveRequest.rst shared-bindings/i2cperipheral/#i2cperipheral.I2CPeripheralRequest
|
||||||
shared-bindings/nvm/ByteArray.rst shared-bindings/nvm/#nvm.ByteArray
|
shared-bindings/nvm/ByteArray.rst shared-bindings/nvm/#nvm.ByteArray
|
||||||
shared-bindings/busio/I2C.rst shared-bindings/busio/#busio.I2C
|
shared-bindings/busio/I2C.rst shared-bindings/busio/#busio.I2C
|
||||||
shared-bindings/busio/OneWire.rst shared-bindings/busio/#busio.OneWire
|
shared-bindings/busio/OneWire.rst shared-bindings/busio/#busio.OneWire
|
||||||
|
4
docs/static/customstyle.css
vendored
4
docs/static/customstyle.css
vendored
@ -24,3 +24,7 @@
|
|||||||
overflow: visible !important;
|
overflow: visible !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.strike {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
@ -1,641 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the MicroPython project, http://micropython.org/
|
|
||||||
*
|
|
||||||
* The MIT License (MIT)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Damien P. George
|
|
||||||
*
|
|
||||||
* 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 <stdio.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "py/mperrno.h"
|
|
||||||
#include "py/mphal.h"
|
|
||||||
#include "py/runtime.h"
|
|
||||||
#include "extmod/machine_i2c.h"
|
|
||||||
|
|
||||||
#include "supervisor/shared/translate.h"
|
|
||||||
|
|
||||||
#if MICROPY_PY_MACHINE_I2C
|
|
||||||
|
|
||||||
typedef mp_machine_soft_i2c_obj_t machine_i2c_obj_t;
|
|
||||||
|
|
||||||
STATIC void mp_hal_i2c_delay(machine_i2c_obj_t *self) {
|
|
||||||
// We need to use an accurate delay to get acceptable I2C
|
|
||||||
// speeds (eg 1us should be not much more than 1us).
|
|
||||||
mp_hal_delay_us_fast(self->us_delay);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC void mp_hal_i2c_scl_low(machine_i2c_obj_t *self) {
|
|
||||||
mp_hal_pin_od_low(self->scl);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC int mp_hal_i2c_scl_release(machine_i2c_obj_t *self) {
|
|
||||||
uint32_t count = self->us_timeout;
|
|
||||||
|
|
||||||
mp_hal_pin_od_high(self->scl);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
// For clock stretching, wait for the SCL pin to be released, with timeout.
|
|
||||||
for (; mp_hal_pin_read(self->scl) == 0 && count; --count) {
|
|
||||||
mp_hal_delay_us_fast(1);
|
|
||||||
}
|
|
||||||
if (count == 0) {
|
|
||||||
return -MP_ETIMEDOUT;
|
|
||||||
}
|
|
||||||
return 0; // success
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC void mp_hal_i2c_sda_low(machine_i2c_obj_t *self) {
|
|
||||||
mp_hal_pin_od_low(self->sda);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC void mp_hal_i2c_sda_release(machine_i2c_obj_t *self) {
|
|
||||||
mp_hal_pin_od_high(self->sda);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC int mp_hal_i2c_sda_read(machine_i2c_obj_t *self) {
|
|
||||||
return mp_hal_pin_read(self->sda);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC int mp_hal_i2c_start(machine_i2c_obj_t *self) {
|
|
||||||
mp_hal_i2c_sda_release(self);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
int ret = mp_hal_i2c_scl_release(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
mp_hal_i2c_sda_low(self);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
return 0; // success
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC int mp_hal_i2c_stop(machine_i2c_obj_t *self) {
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
mp_hal_i2c_sda_low(self);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
int ret = mp_hal_i2c_scl_release(self);
|
|
||||||
mp_hal_i2c_sda_release(self);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC void mp_hal_i2c_init(machine_i2c_obj_t *self, uint32_t freq) {
|
|
||||||
self->us_delay = 500000 / freq;
|
|
||||||
if (self->us_delay == 0) {
|
|
||||||
self->us_delay = 1;
|
|
||||||
}
|
|
||||||
mp_hal_pin_open_drain(self->scl);
|
|
||||||
mp_hal_pin_open_drain(self->sda);
|
|
||||||
mp_hal_i2c_stop(self); // ignore error
|
|
||||||
}
|
|
||||||
|
|
||||||
// return value:
|
|
||||||
// 0 - byte written and ack received
|
|
||||||
// 1 - byte written and nack received
|
|
||||||
// <0 - error, with errno being the negative of the return value
|
|
||||||
STATIC int mp_hal_i2c_write_byte(machine_i2c_obj_t *self, uint8_t val) {
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
mp_hal_i2c_scl_low(self);
|
|
||||||
|
|
||||||
for (int i = 7; i >= 0; i--) {
|
|
||||||
if ((val >> i) & 1) {
|
|
||||||
mp_hal_i2c_sda_release(self);
|
|
||||||
} else {
|
|
||||||
mp_hal_i2c_sda_low(self);
|
|
||||||
}
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
int ret = mp_hal_i2c_scl_release(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
mp_hal_i2c_sda_release(self);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
mp_hal_i2c_scl_low(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
mp_hal_i2c_sda_release(self);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
int ret = mp_hal_i2c_scl_release(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ack = mp_hal_i2c_sda_read(self);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
mp_hal_i2c_scl_low(self);
|
|
||||||
|
|
||||||
return ack;
|
|
||||||
}
|
|
||||||
|
|
||||||
// return value:
|
|
||||||
// 0 - success
|
|
||||||
// <0 - error, with errno being the negative of the return value
|
|
||||||
STATIC int mp_hal_i2c_read_byte(machine_i2c_obj_t *self, uint8_t *val, int nack) {
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
mp_hal_i2c_scl_low(self);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
|
|
||||||
uint8_t data = 0;
|
|
||||||
for (int i = 7; i >= 0; i--) {
|
|
||||||
int ret = mp_hal_i2c_scl_release(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
data = (data << 1) | mp_hal_i2c_sda_read(self);
|
|
||||||
mp_hal_i2c_scl_low(self);
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
}
|
|
||||||
*val = data;
|
|
||||||
|
|
||||||
// send ack/nack bit
|
|
||||||
if (!nack) {
|
|
||||||
mp_hal_i2c_sda_low(self);
|
|
||||||
}
|
|
||||||
mp_hal_i2c_delay(self);
|
|
||||||
int ret = mp_hal_i2c_scl_release(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
mp_hal_i2c_sda_release(self);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
mp_hal_i2c_scl_low(self);
|
|
||||||
mp_hal_i2c_sda_release(self);
|
|
||||||
|
|
||||||
return 0; // success
|
|
||||||
}
|
|
||||||
|
|
||||||
// return value:
|
|
||||||
// >=0 - number of acks received
|
|
||||||
// <0 - error, with errno being the negative of the return value
|
|
||||||
int mp_machine_soft_i2c_writeto(mp_obj_base_t *self_in, uint16_t addr, const uint8_t *src, size_t len, bool stop) {
|
|
||||||
machine_i2c_obj_t *self = (machine_i2c_obj_t*)self_in;
|
|
||||||
|
|
||||||
// start the I2C transaction
|
|
||||||
int ret = mp_hal_i2c_start(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
// write the slave address
|
|
||||||
ret = mp_hal_i2c_write_byte(self, addr << 1);
|
|
||||||
if (ret < 0) {
|
|
||||||
return ret;
|
|
||||||
} else if (ret != 0) {
|
|
||||||
// nack received, release the bus cleanly
|
|
||||||
mp_hal_i2c_stop(self);
|
|
||||||
return -MP_ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
// write the buffer to the I2C memory
|
|
||||||
int num_acks = 0;
|
|
||||||
while (len--) {
|
|
||||||
ret = mp_hal_i2c_write_byte(self, *src++);
|
|
||||||
if (ret < 0) {
|
|
||||||
return ret;
|
|
||||||
} else if (ret != 0) {
|
|
||||||
// nack received, stop sending
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
++num_acks;
|
|
||||||
}
|
|
||||||
|
|
||||||
// finish the I2C transaction
|
|
||||||
if (stop) {
|
|
||||||
ret = mp_hal_i2c_stop(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return num_acks;
|
|
||||||
}
|
|
||||||
|
|
||||||
// return value:
|
|
||||||
// 0 - success
|
|
||||||
// <0 - error, with errno being the negative of the return value
|
|
||||||
int mp_machine_soft_i2c_readfrom(mp_obj_base_t *self_in, uint16_t addr, uint8_t *dest, size_t len, bool stop) {
|
|
||||||
machine_i2c_obj_t *self = (machine_i2c_obj_t*)self_in;
|
|
||||||
|
|
||||||
// start the I2C transaction
|
|
||||||
int ret = mp_hal_i2c_start(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
// write the slave address
|
|
||||||
ret = mp_hal_i2c_write_byte(self, (addr << 1) | 1);
|
|
||||||
if (ret < 0) {
|
|
||||||
return ret;
|
|
||||||
} else if (ret != 0) {
|
|
||||||
// nack received, release the bus cleanly
|
|
||||||
mp_hal_i2c_stop(self);
|
|
||||||
return -MP_ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
// read the bytes from the slave
|
|
||||||
while (len--) {
|
|
||||||
ret = mp_hal_i2c_read_byte(self, dest++, len == 0);
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// finish the I2C transaction
|
|
||||||
if (stop) {
|
|
||||||
ret = mp_hal_i2c_stop(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0; // success
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
// MicroPython bindings for I2C
|
|
||||||
|
|
||||||
STATIC void machine_i2c_obj_init_helper(machine_i2c_obj_t *self, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
|
||||||
enum { ARG_scl, ARG_sda, ARG_freq, ARG_timeout };
|
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_scl, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_sda, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_freq, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 400000} },
|
|
||||||
{ MP_QSTR_timeout, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 255} },
|
|
||||||
};
|
|
||||||
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);
|
|
||||||
self->scl = mp_hal_get_pin_obj(args[ARG_scl].u_obj);
|
|
||||||
self->sda = mp_hal_get_pin_obj(args[ARG_sda].u_obj);
|
|
||||||
self->us_timeout = args[ARG_timeout].u_int;
|
|
||||||
mp_hal_i2c_init(self, args[ARG_freq].u_int);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
|
||||||
// check the id argument, if given
|
|
||||||
if (n_args > 0) {
|
|
||||||
if (args[0] != MP_OBJ_NEW_SMALL_INT(-1)) {
|
|
||||||
#if defined(MICROPY_PY_MACHINE_I2C_MAKE_NEW)
|
|
||||||
// dispatch to port-specific constructor
|
|
||||||
extern mp_obj_t MICROPY_PY_MACHINE_I2C_MAKE_NEW(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *all_args, mp_map_t *kw_args);
|
|
||||||
return MICROPY_PY_MACHINE_I2C_MAKE_NEW(type, n_args, args, kw_args);
|
|
||||||
#else
|
|
||||||
mp_raise_ValueError(translate("invalid I2C peripheral"));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
--n_args;
|
|
||||||
++args;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create new soft I2C object
|
|
||||||
machine_i2c_obj_t *self = m_new_obj(machine_i2c_obj_t);
|
|
||||||
self->base.type = &machine_i2c_type;
|
|
||||||
machine_i2c_obj_init_helper(self, n_args, args, kw_args);
|
|
||||||
return (mp_obj_t)self;
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_obj_init(size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
|
||||||
machine_i2c_obj_init_helper(args[0], n_args - 1, args + 1, kw_args);
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(machine_i2c_init_obj, 1, machine_i2c_obj_init);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_scan(mp_obj_t self_in) {
|
|
||||||
mp_obj_base_t *self = MP_OBJ_TO_PTR(self_in);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
mp_obj_t list = mp_obj_new_list(0, NULL);
|
|
||||||
// 7-bit addresses 0b0000xxx and 0b1111xxx are reserved
|
|
||||||
for (int addr = 0x08; addr < 0x78; ++addr) {
|
|
||||||
int ret = i2c_p->writeto(self, addr, NULL, 0, true);
|
|
||||||
if (ret == 0) {
|
|
||||||
mp_obj_list_append(list, MP_OBJ_NEW_SMALL_INT(addr));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_1(machine_i2c_scan_obj, machine_i2c_scan);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_start(mp_obj_t self_in) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(self_in);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
if (i2c_p->start == NULL) {
|
|
||||||
mp_raise_msg(&mp_type_OSError, translate("I2C operation not supported"));
|
|
||||||
}
|
|
||||||
int ret = i2c_p->start(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_1(machine_i2c_start_obj, machine_i2c_start);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_stop(mp_obj_t self_in) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(self_in);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
if (i2c_p->stop == NULL) {
|
|
||||||
mp_raise_msg(&mp_type_OSError, translate("I2C operation not supported"));
|
|
||||||
}
|
|
||||||
int ret = i2c_p->stop(self);
|
|
||||||
if (ret != 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_1(machine_i2c_stop_obj, machine_i2c_stop);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_readinto(size_t n_args, const mp_obj_t *args) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(args[0]);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
if (i2c_p->read == NULL) {
|
|
||||||
mp_raise_msg(&mp_type_OSError, translate("I2C operation not supported"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// get the buffer to read into
|
|
||||||
mp_buffer_info_t bufinfo;
|
|
||||||
mp_get_buffer_raise(args[1], &bufinfo, MP_BUFFER_WRITE);
|
|
||||||
|
|
||||||
// work out if we want to send a nack at the end
|
|
||||||
bool nack = (n_args == 2) ? true : mp_obj_is_true(args[2]);
|
|
||||||
|
|
||||||
// do the read
|
|
||||||
int ret = i2c_p->read(self, bufinfo.buf, bufinfo.len, nack);
|
|
||||||
if (ret != 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(machine_i2c_readinto_obj, 2, 3, machine_i2c_readinto);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_write(mp_obj_t self_in, mp_obj_t buf_in) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(self_in);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
if (i2c_p->write == NULL) {
|
|
||||||
mp_raise_msg(&mp_type_OSError, translate("I2C operation not supported"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// get the buffer to write from
|
|
||||||
mp_buffer_info_t bufinfo;
|
|
||||||
mp_get_buffer_raise(buf_in, &bufinfo, MP_BUFFER_READ);
|
|
||||||
|
|
||||||
// do the write
|
|
||||||
int ret = i2c_p->write(self, bufinfo.buf, bufinfo.len);
|
|
||||||
if (ret < 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
// return number of acks received
|
|
||||||
return MP_OBJ_NEW_SMALL_INT(ret);
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_2(machine_i2c_write_obj, machine_i2c_write);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_readfrom(size_t n_args, const mp_obj_t *args) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(args[0]);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
mp_int_t addr = mp_obj_get_int(args[1]);
|
|
||||||
vstr_t vstr;
|
|
||||||
vstr_init_len(&vstr, mp_obj_get_int(args[2]));
|
|
||||||
bool stop = (n_args == 3) ? true : mp_obj_is_true(args[3]);
|
|
||||||
int ret = i2c_p->readfrom(self, addr, (uint8_t*)vstr.buf, vstr.len, stop);
|
|
||||||
if (ret < 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(machine_i2c_readfrom_obj, 3, 4, machine_i2c_readfrom);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_readfrom_into(size_t n_args, const mp_obj_t *args) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(args[0]);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
mp_int_t addr = mp_obj_get_int(args[1]);
|
|
||||||
mp_buffer_info_t bufinfo;
|
|
||||||
mp_get_buffer_raise(args[2], &bufinfo, MP_BUFFER_WRITE);
|
|
||||||
bool stop = (n_args == 3) ? true : mp_obj_is_true(args[3]);
|
|
||||||
int ret = i2c_p->readfrom(self, addr, bufinfo.buf, bufinfo.len, stop);
|
|
||||||
if (ret < 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(machine_i2c_readfrom_into_obj, 3, 4, machine_i2c_readfrom_into);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_writeto(size_t n_args, const mp_obj_t *args) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(args[0]);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
mp_int_t addr = mp_obj_get_int(args[1]);
|
|
||||||
mp_buffer_info_t bufinfo;
|
|
||||||
mp_get_buffer_raise(args[2], &bufinfo, MP_BUFFER_READ);
|
|
||||||
bool stop = (n_args == 3) ? true : mp_obj_is_true(args[3]);
|
|
||||||
int ret = i2c_p->writeto(self, addr, bufinfo.buf, bufinfo.len, stop);
|
|
||||||
if (ret < 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
// return number of acks received
|
|
||||||
return MP_OBJ_NEW_SMALL_INT(ret);
|
|
||||||
}
|
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(machine_i2c_writeto_obj, 3, 4, machine_i2c_writeto);
|
|
||||||
|
|
||||||
STATIC int read_mem(mp_obj_t self_in, uint16_t addr, uint32_t memaddr, uint8_t addrsize, uint8_t *buf, size_t len) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(self_in);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
uint8_t memaddr_buf[4];
|
|
||||||
size_t memaddr_len = 0;
|
|
||||||
for (int16_t i = addrsize - 8; i >= 0; i -= 8) {
|
|
||||||
memaddr_buf[memaddr_len++] = memaddr >> i;
|
|
||||||
}
|
|
||||||
int ret = i2c_p->writeto(self, addr, memaddr_buf, memaddr_len, false);
|
|
||||||
if (ret != memaddr_len) {
|
|
||||||
// must generate STOP
|
|
||||||
i2c_p->writeto(self, addr, NULL, 0, true);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
return i2c_p->readfrom(self, addr, buf, len, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define MAX_MEMADDR_SIZE (4)
|
|
||||||
#define BUF_STACK_SIZE (12)
|
|
||||||
|
|
||||||
STATIC int write_mem(mp_obj_t self_in, uint16_t addr, uint32_t memaddr, uint8_t addrsize, const uint8_t *buf, size_t len) {
|
|
||||||
mp_obj_base_t *self = (mp_obj_base_t*)MP_OBJ_TO_PTR(self_in);
|
|
||||||
mp_machine_i2c_p_t *i2c_p = (mp_machine_i2c_p_t*)mp_proto_get(self, QSTR_protocol_i2c);
|
|
||||||
|
|
||||||
// need some memory to create the buffer to send; try to use stack if possible
|
|
||||||
uint8_t buf2_stack[MAX_MEMADDR_SIZE + BUF_STACK_SIZE];
|
|
||||||
uint8_t *buf2;
|
|
||||||
size_t buf2_alloc = 0;
|
|
||||||
if (len <= BUF_STACK_SIZE) {
|
|
||||||
buf2 = buf2_stack;
|
|
||||||
} else {
|
|
||||||
buf2_alloc = MAX_MEMADDR_SIZE + len;
|
|
||||||
buf2 = m_new(uint8_t, buf2_alloc);
|
|
||||||
}
|
|
||||||
|
|
||||||
// create the buffer to send
|
|
||||||
size_t memaddr_len = 0;
|
|
||||||
for (int16_t i = addrsize - 8; i >= 0; i -= 8) {
|
|
||||||
buf2[memaddr_len++] = memaddr >> i;
|
|
||||||
}
|
|
||||||
memcpy(buf2 + memaddr_len, buf, len);
|
|
||||||
|
|
||||||
int ret = i2c_p->writeto(self, addr, buf2, memaddr_len + len, true);
|
|
||||||
if (buf2_alloc != 0) {
|
|
||||||
m_del(uint8_t, buf2, buf2_alloc);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC const mp_arg_t machine_i2c_mem_allowed_args[] = {
|
|
||||||
{ MP_QSTR_addr, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
|
|
||||||
{ MP_QSTR_memaddr, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
|
|
||||||
{ MP_QSTR_arg, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
|
||||||
{ MP_QSTR_addrsize, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 8} },
|
|
||||||
};
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_readfrom_mem(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
|
||||||
enum { ARG_addr, ARG_memaddr, ARG_n, ARG_addrsize };
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(machine_i2c_mem_allowed_args)];
|
|
||||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args,
|
|
||||||
MP_ARRAY_SIZE(machine_i2c_mem_allowed_args), machine_i2c_mem_allowed_args, args);
|
|
||||||
|
|
||||||
// create the buffer to store data into
|
|
||||||
vstr_t vstr;
|
|
||||||
vstr_init_len(&vstr, mp_obj_get_int(args[ARG_n].u_obj));
|
|
||||||
|
|
||||||
// do the transfer
|
|
||||||
int ret = read_mem(pos_args[0], args[ARG_addr].u_int, args[ARG_memaddr].u_int,
|
|
||||||
args[ARG_addrsize].u_int, (uint8_t*)vstr.buf, vstr.len);
|
|
||||||
if (ret < 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(machine_i2c_readfrom_mem_obj, 1, machine_i2c_readfrom_mem);
|
|
||||||
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_readfrom_mem_into(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
|
||||||
enum { ARG_addr, ARG_memaddr, ARG_buf, ARG_addrsize };
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(machine_i2c_mem_allowed_args)];
|
|
||||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args,
|
|
||||||
MP_ARRAY_SIZE(machine_i2c_mem_allowed_args), machine_i2c_mem_allowed_args, args);
|
|
||||||
|
|
||||||
// get the buffer to store data into
|
|
||||||
mp_buffer_info_t bufinfo;
|
|
||||||
mp_get_buffer_raise(args[ARG_buf].u_obj, &bufinfo, MP_BUFFER_WRITE);
|
|
||||||
|
|
||||||
// do the transfer
|
|
||||||
int ret = read_mem(pos_args[0], args[ARG_addr].u_int, args[ARG_memaddr].u_int,
|
|
||||||
args[ARG_addrsize].u_int, bufinfo.buf, bufinfo.len);
|
|
||||||
if (ret < 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(machine_i2c_readfrom_mem_into_obj, 1, machine_i2c_readfrom_mem_into);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_i2c_writeto_mem(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
|
||||||
enum { ARG_addr, ARG_memaddr, ARG_buf, ARG_addrsize };
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(machine_i2c_mem_allowed_args)];
|
|
||||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args,
|
|
||||||
MP_ARRAY_SIZE(machine_i2c_mem_allowed_args), machine_i2c_mem_allowed_args, args);
|
|
||||||
|
|
||||||
// get the buffer to write the data from
|
|
||||||
mp_buffer_info_t bufinfo;
|
|
||||||
mp_get_buffer_raise(args[ARG_buf].u_obj, &bufinfo, MP_BUFFER_READ);
|
|
||||||
|
|
||||||
// do the transfer
|
|
||||||
int ret = write_mem(pos_args[0], args[ARG_addr].u_int, args[ARG_memaddr].u_int,
|
|
||||||
args[ARG_addrsize].u_int, bufinfo.buf, bufinfo.len);
|
|
||||||
if (ret < 0) {
|
|
||||||
mp_raise_OSError(-ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(machine_i2c_writeto_mem_obj, 1, machine_i2c_writeto_mem);
|
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t machine_i2c_locals_dict_table[] = {
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&machine_i2c_init_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_scan), MP_ROM_PTR(&machine_i2c_scan_obj) },
|
|
||||||
|
|
||||||
// primitive I2C operations
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_start), MP_ROM_PTR(&machine_i2c_start_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_stop), MP_ROM_PTR(&machine_i2c_stop_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_readinto), MP_ROM_PTR(&machine_i2c_readinto_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&machine_i2c_write_obj) },
|
|
||||||
|
|
||||||
// standard bus operations
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_readfrom), MP_ROM_PTR(&machine_i2c_readfrom_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_readfrom_into), MP_ROM_PTR(&machine_i2c_readfrom_into_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_writeto), MP_ROM_PTR(&machine_i2c_writeto_obj) },
|
|
||||||
|
|
||||||
// memory operations
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_readfrom_mem), MP_ROM_PTR(&machine_i2c_readfrom_mem_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_readfrom_mem_into), MP_ROM_PTR(&machine_i2c_readfrom_mem_into_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_writeto_mem), MP_ROM_PTR(&machine_i2c_writeto_mem_obj) },
|
|
||||||
};
|
|
||||||
|
|
||||||
MP_DEFINE_CONST_DICT(mp_machine_soft_i2c_locals_dict, machine_i2c_locals_dict_table);
|
|
||||||
|
|
||||||
int mp_machine_soft_i2c_read(mp_obj_base_t *self_in, uint8_t *dest, size_t len, bool nack) {
|
|
||||||
machine_i2c_obj_t *self = (machine_i2c_obj_t*)self_in;
|
|
||||||
while (len--) {
|
|
||||||
int ret = mp_hal_i2c_read_byte(self, dest++, nack && (len == 0));
|
|
||||||
if (ret != 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0; // success
|
|
||||||
}
|
|
||||||
|
|
||||||
int mp_machine_soft_i2c_write(mp_obj_base_t *self_in, const uint8_t *src, size_t len) {
|
|
||||||
machine_i2c_obj_t *self = (machine_i2c_obj_t*)self_in;
|
|
||||||
int num_acks = 0;
|
|
||||||
while (len--) {
|
|
||||||
int ret = mp_hal_i2c_write_byte(self, *src++);
|
|
||||||
if (ret < 0) {
|
|
||||||
return ret;
|
|
||||||
} else if (ret != 0) {
|
|
||||||
// nack received, stop sending
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
++num_acks;
|
|
||||||
}
|
|
||||||
return num_acks;
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC const mp_machine_i2c_p_t mp_machine_soft_i2c_p = {
|
|
||||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_i2c)
|
|
||||||
.start = (int(*)(mp_obj_base_t*))mp_hal_i2c_start,
|
|
||||||
.stop = (int(*)(mp_obj_base_t*))mp_hal_i2c_stop,
|
|
||||||
.read = mp_machine_soft_i2c_read,
|
|
||||||
.write = mp_machine_soft_i2c_write,
|
|
||||||
.readfrom = mp_machine_soft_i2c_readfrom,
|
|
||||||
.writeto = mp_machine_soft_i2c_writeto,
|
|
||||||
};
|
|
||||||
|
|
||||||
const mp_obj_type_t machine_i2c_type = {
|
|
||||||
{ &mp_type_type },
|
|
||||||
.name = MP_QSTR_I2C,
|
|
||||||
.make_new = machine_i2c_make_new,
|
|
||||||
.protocol = &mp_machine_soft_i2c_p,
|
|
||||||
.locals_dict = (mp_obj_dict_t*)&mp_machine_soft_i2c_locals_dict,
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // MICROPY_PY_MACHINE_I2C
|
|
@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the MicroPython project, http://micropython.org/
|
|
||||||
*
|
|
||||||
* The MIT License (MIT)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Damien P. George
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
* THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
#ifndef MICROPY_INCLUDED_EXTMOD_MACHINE_I2C_H
|
|
||||||
#define MICROPY_INCLUDED_EXTMOD_MACHINE_I2C_H
|
|
||||||
|
|
||||||
#include "py/obj.h"
|
|
||||||
#include "py/proto.h"
|
|
||||||
|
|
||||||
// I2C protocol
|
|
||||||
// the first 4 methods can be NULL, meaning operation is not supported
|
|
||||||
typedef struct _mp_machine_i2c_p_t {
|
|
||||||
MP_PROTOCOL_HEAD
|
|
||||||
int (*start)(mp_obj_base_t *obj);
|
|
||||||
int (*stop)(mp_obj_base_t *obj);
|
|
||||||
int (*read)(mp_obj_base_t *obj, uint8_t *dest, size_t len, bool nack);
|
|
||||||
int (*write)(mp_obj_base_t *obj, const uint8_t *src, size_t len);
|
|
||||||
int (*readfrom)(mp_obj_base_t *obj, uint16_t addr, uint8_t *dest, size_t len, bool stop);
|
|
||||||
int (*writeto)(mp_obj_base_t *obj, uint16_t addr, const uint8_t *src, size_t len, bool stop);
|
|
||||||
} mp_machine_i2c_p_t;
|
|
||||||
|
|
||||||
typedef struct _mp_machine_soft_i2c_obj_t {
|
|
||||||
mp_obj_base_t base;
|
|
||||||
uint32_t us_delay;
|
|
||||||
uint32_t us_timeout;
|
|
||||||
mp_hal_pin_obj_t scl;
|
|
||||||
mp_hal_pin_obj_t sda;
|
|
||||||
} mp_machine_soft_i2c_obj_t;
|
|
||||||
|
|
||||||
extern const mp_obj_type_t machine_i2c_type;
|
|
||||||
extern const mp_obj_dict_t mp_machine_soft_i2c_locals_dict;
|
|
||||||
|
|
||||||
int mp_machine_soft_i2c_readfrom(mp_obj_base_t *self_in, uint16_t addr, uint8_t *dest, size_t len, bool stop);
|
|
||||||
int mp_machine_soft_i2c_writeto(mp_obj_base_t *self_in, uint16_t addr, const uint8_t *src, size_t len, bool stop);
|
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_EXTMOD_MACHINE_I2C_H
|
|
@ -1,286 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the MicroPython project, http://micropython.org/
|
|
||||||
*
|
|
||||||
* The MIT License (MIT)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Damien P. George
|
|
||||||
*
|
|
||||||
* 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 <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "py/runtime.h"
|
|
||||||
#include "extmod/machine_spi.h"
|
|
||||||
|
|
||||||
#include "supervisor/shared/translate.h"
|
|
||||||
|
|
||||||
#if MICROPY_PY_MACHINE_SPI
|
|
||||||
|
|
||||||
// if a port didn't define MSB/LSB constants then provide them
|
|
||||||
#ifndef MICROPY_PY_MACHINE_SPI_MSB
|
|
||||||
#define MICROPY_PY_MACHINE_SPI_MSB (0)
|
|
||||||
#define MICROPY_PY_MACHINE_SPI_LSB (1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
// MicroPython bindings for generic machine.SPI
|
|
||||||
|
|
||||||
STATIC mp_obj_t mp_machine_soft_spi_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
||||||
|
|
||||||
mp_obj_t mp_machine_spi_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
|
||||||
// check the id argument, if given
|
|
||||||
if (n_args > 0) {
|
|
||||||
if (args[0] != MP_OBJ_NEW_SMALL_INT(-1)) {
|
|
||||||
#if defined(MICROPY_PY_MACHINE_SPI_MAKE_NEW)
|
|
||||||
// dispatch to port-specific constructor
|
|
||||||
extern mp_obj_t MICROPY_PY_MACHINE_SPI_MAKE_NEW(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
||||||
return MICROPY_PY_MACHINE_SPI_MAKE_NEW(type, n_args, args, kw_args);
|
|
||||||
#else
|
|
||||||
mp_raise_ValueError(translate("invalid SPI peripheral"));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
--n_args;
|
|
||||||
++args;
|
|
||||||
}
|
|
||||||
|
|
||||||
// software SPI
|
|
||||||
return mp_machine_soft_spi_make_new(type, n_args, args, kw_args);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_spi_init(size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
|
||||||
mp_obj_base_t *s = (mp_obj_base_t*)MP_OBJ_TO_PTR(args[0]);
|
|
||||||
mp_machine_spi_p_t *spi_p = (mp_machine_spi_p_t*)mp_proto_get(QSTR_protocol_spi, s);
|
|
||||||
spi_p->init(s, n_args - 1, args + 1, kw_args);
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(machine_spi_init_obj, 1, machine_spi_init);
|
|
||||||
|
|
||||||
STATIC mp_obj_t machine_spi_deinit(mp_obj_t self) {
|
|
||||||
mp_obj_base_t *s = (mp_obj_base_t*)MP_OBJ_TO_PTR(self);
|
|
||||||
mp_machine_spi_p_t *spi_p = (mp_machine_spi_p_t*)mp_proto_get(QSTR_protocol_spi, s);
|
|
||||||
if (spi_p->deinit != NULL) {
|
|
||||||
spi_p->deinit(s);
|
|
||||||
}
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(machine_spi_deinit_obj, machine_spi_deinit);
|
|
||||||
|
|
||||||
STATIC void mp_machine_spi_transfer(mp_obj_t self, size_t len, const void *src, void *dest) {
|
|
||||||
mp_obj_base_t *s = (mp_obj_base_t*)MP_OBJ_TO_PTR(self);
|
|
||||||
mp_machine_spi_p_t *spi_p = (mp_machine_spi_p_t*)mp_proto_get(QSTR_protocol_spi, s);
|
|
||||||
spi_p->transfer(s, len, src, dest);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC mp_obj_t mp_machine_spi_read(size_t n_args, const mp_obj_t *args) {
|
|
||||||
vstr_t vstr;
|
|
||||||
vstr_init_len(&vstr, mp_obj_get_int(args[1]));
|
|
||||||
memset(vstr.buf, n_args == 3 ? mp_obj_get_int(args[2]) : 0, vstr.len);
|
|
||||||
mp_machine_spi_transfer(args[0], vstr.len, vstr.buf, vstr.buf);
|
|
||||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_machine_spi_read_obj, 2, 3, mp_machine_spi_read);
|
|
||||||
|
|
||||||
STATIC mp_obj_t mp_machine_spi_readinto(size_t n_args, const mp_obj_t *args) {
|
|
||||||
mp_buffer_info_t bufinfo;
|
|
||||||
mp_get_buffer_raise(args[1], &bufinfo, MP_BUFFER_WRITE);
|
|
||||||
memset(bufinfo.buf, n_args == 3 ? mp_obj_get_int(args[2]) : 0, bufinfo.len);
|
|
||||||
mp_machine_spi_transfer(args[0], bufinfo.len, bufinfo.buf, bufinfo.buf);
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_machine_spi_readinto_obj, 2, 3, mp_machine_spi_readinto);
|
|
||||||
|
|
||||||
STATIC mp_obj_t mp_machine_spi_write(mp_obj_t self, mp_obj_t wr_buf) {
|
|
||||||
mp_buffer_info_t src;
|
|
||||||
mp_get_buffer_raise(wr_buf, &src, MP_BUFFER_READ);
|
|
||||||
mp_machine_spi_transfer(self, src.len, (const uint8_t*)src.buf, NULL);
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_2(mp_machine_spi_write_obj, mp_machine_spi_write);
|
|
||||||
|
|
||||||
STATIC mp_obj_t mp_machine_spi_write_readinto(mp_obj_t self, mp_obj_t wr_buf, mp_obj_t rd_buf) {
|
|
||||||
mp_buffer_info_t src;
|
|
||||||
mp_get_buffer_raise(wr_buf, &src, MP_BUFFER_READ);
|
|
||||||
mp_buffer_info_t dest;
|
|
||||||
mp_get_buffer_raise(rd_buf, &dest, MP_BUFFER_WRITE);
|
|
||||||
if (src.len != dest.len) {
|
|
||||||
mp_raise_ValueError(translate("buffers must be the same length"));
|
|
||||||
}
|
|
||||||
mp_machine_spi_transfer(self, src.len, src.buf, dest.buf);
|
|
||||||
return mp_const_none;
|
|
||||||
}
|
|
||||||
MP_DEFINE_CONST_FUN_OBJ_3(mp_machine_spi_write_readinto_obj, mp_machine_spi_write_readinto);
|
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t machine_spi_locals_dict_table[] = {
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&machine_spi_init_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&machine_spi_deinit_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&mp_machine_spi_read_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_readinto), MP_ROM_PTR(&mp_machine_spi_readinto_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&mp_machine_spi_write_obj) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_write_readinto), MP_ROM_PTR(&mp_machine_spi_write_readinto_obj) },
|
|
||||||
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_MSB), MP_ROM_INT(MICROPY_PY_MACHINE_SPI_MSB) },
|
|
||||||
{ MP_ROM_QSTR(MP_QSTR_LSB), MP_ROM_INT(MICROPY_PY_MACHINE_SPI_LSB) },
|
|
||||||
};
|
|
||||||
|
|
||||||
MP_DEFINE_CONST_DICT(mp_machine_spi_locals_dict, machine_spi_locals_dict_table);
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
// Implementation of soft SPI
|
|
||||||
|
|
||||||
STATIC uint32_t baudrate_from_delay_half(uint32_t delay_half) {
|
|
||||||
#ifdef MICROPY_HW_SOFTSPI_MIN_DELAY
|
|
||||||
if (delay_half == MICROPY_HW_SOFTSPI_MIN_DELAY) {
|
|
||||||
return MICROPY_HW_SOFTSPI_MAX_BAUDRATE;
|
|
||||||
} else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
return 500000 / delay_half;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC uint32_t baudrate_to_delay_half(uint32_t baudrate) {
|
|
||||||
#ifdef MICROPY_HW_SOFTSPI_MIN_DELAY
|
|
||||||
if (baudrate >= MICROPY_HW_SOFTSPI_MAX_BAUDRATE) {
|
|
||||||
return MICROPY_HW_SOFTSPI_MIN_DELAY;
|
|
||||||
} else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
uint32_t delay_half = 500000 / baudrate;
|
|
||||||
// round delay_half up so that: actual_baudrate <= requested_baudrate
|
|
||||||
if (500000 % baudrate != 0) {
|
|
||||||
delay_half += 1;
|
|
||||||
}
|
|
||||||
return delay_half;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC void mp_machine_soft_spi_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
|
|
||||||
mp_machine_soft_spi_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
|
||||||
mp_printf(print, "SoftSPI(baudrate=%u, polarity=%u, phase=%u,"
|
|
||||||
" sck=" MP_HAL_PIN_FMT ", mosi=" MP_HAL_PIN_FMT ", miso=" MP_HAL_PIN_FMT ")",
|
|
||||||
baudrate_from_delay_half(self->spi.delay_half), self->spi.polarity, self->spi.phase,
|
|
||||||
mp_hal_pin_name(self->spi.sck), mp_hal_pin_name(self->spi.mosi), mp_hal_pin_name(self->spi.miso));
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC mp_obj_t mp_machine_soft_spi_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *all_args, mp_map_t *kw_args) {
|
|
||||||
enum { ARG_baudrate, ARG_polarity, ARG_phase, ARG_bits, ARG_firstbit, ARG_sck, ARG_mosi, ARG_miso };
|
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_baudrate, MP_ARG_INT, {.u_int = 500000} },
|
|
||||||
{ MP_QSTR_polarity, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
|
||||||
{ MP_QSTR_phase, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0} },
|
|
||||||
{ MP_QSTR_bits, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 8} },
|
|
||||||
{ MP_QSTR_firstbit, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = MICROPY_PY_MACHINE_SPI_MSB} },
|
|
||||||
{ MP_QSTR_sck, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
|
||||||
{ MP_QSTR_mosi, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
|
||||||
{ MP_QSTR_miso, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
|
||||||
};
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
|
||||||
mp_arg_parse_all(n_args, all_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
// create new object
|
|
||||||
mp_machine_soft_spi_obj_t *self = m_new_obj(mp_machine_soft_spi_obj_t);
|
|
||||||
self->base.type = &mp_machine_soft_spi_type;
|
|
||||||
|
|
||||||
// set parameters
|
|
||||||
self->spi.delay_half = baudrate_to_delay_half(args[ARG_baudrate].u_int);
|
|
||||||
self->spi.polarity = args[ARG_polarity].u_int;
|
|
||||||
self->spi.phase = args[ARG_phase].u_int;
|
|
||||||
if (args[ARG_bits].u_int != 8) {
|
|
||||||
mp_raise_ValueError(translate("bits must be 8"));
|
|
||||||
}
|
|
||||||
if (args[ARG_firstbit].u_int != MICROPY_PY_MACHINE_SPI_MSB) {
|
|
||||||
mp_raise_ValueError(translate("firstbit must be MSB"));
|
|
||||||
}
|
|
||||||
if (args[ARG_sck].u_obj == MP_OBJ_NULL
|
|
||||||
|| args[ARG_mosi].u_obj == MP_OBJ_NULL
|
|
||||||
|| args[ARG_miso].u_obj == MP_OBJ_NULL) {
|
|
||||||
mp_raise_ValueError(translate("must specify all of sck/mosi/miso"));
|
|
||||||
}
|
|
||||||
self->spi.sck = mp_hal_get_pin_obj(args[ARG_sck].u_obj);
|
|
||||||
self->spi.mosi = mp_hal_get_pin_obj(args[ARG_mosi].u_obj);
|
|
||||||
self->spi.miso = mp_hal_get_pin_obj(args[ARG_miso].u_obj);
|
|
||||||
|
|
||||||
// configure bus
|
|
||||||
mp_soft_spi_ioctl(&self->spi, MP_SPI_IOCTL_INIT);
|
|
||||||
|
|
||||||
return MP_OBJ_FROM_PTR(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC void mp_machine_soft_spi_init(mp_obj_base_t *self_in, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
|
||||||
mp_machine_soft_spi_obj_t *self = (mp_machine_soft_spi_obj_t*)self_in;
|
|
||||||
|
|
||||||
enum { ARG_baudrate, ARG_polarity, ARG_phase, ARG_sck, ARG_mosi, ARG_miso };
|
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_baudrate, MP_ARG_INT, {.u_int = -1} },
|
|
||||||
{ MP_QSTR_polarity, MP_ARG_INT, {.u_int = -1} },
|
|
||||||
{ MP_QSTR_phase, MP_ARG_INT, {.u_int = -1} },
|
|
||||||
{ MP_QSTR_sck, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
|
||||||
{ MP_QSTR_mosi, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
|
||||||
{ MP_QSTR_miso, MP_ARG_KW_ONLY | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
|
|
||||||
};
|
|
||||||
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);
|
|
||||||
|
|
||||||
if (args[ARG_baudrate].u_int != -1) {
|
|
||||||
self->spi.delay_half = baudrate_to_delay_half(args[ARG_baudrate].u_int);
|
|
||||||
}
|
|
||||||
if (args[ARG_polarity].u_int != -1) {
|
|
||||||
self->spi.polarity = args[ARG_polarity].u_int;
|
|
||||||
}
|
|
||||||
if (args[ARG_phase].u_int != -1) {
|
|
||||||
self->spi.phase = args[ARG_phase].u_int;
|
|
||||||
}
|
|
||||||
if (args[ARG_sck].u_obj != MP_OBJ_NULL) {
|
|
||||||
self->spi.sck = mp_hal_get_pin_obj(args[ARG_sck].u_obj);
|
|
||||||
}
|
|
||||||
if (args[ARG_mosi].u_obj != MP_OBJ_NULL) {
|
|
||||||
self->spi.mosi = mp_hal_get_pin_obj(args[ARG_mosi].u_obj);
|
|
||||||
}
|
|
||||||
if (args[ARG_miso].u_obj != MP_OBJ_NULL) {
|
|
||||||
self->spi.miso = mp_hal_get_pin_obj(args[ARG_miso].u_obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
// configure bus
|
|
||||||
mp_soft_spi_ioctl(&self->spi, MP_SPI_IOCTL_INIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC void mp_machine_soft_spi_transfer(mp_obj_base_t *self_in, size_t len, const uint8_t *src, uint8_t *dest) {
|
|
||||||
mp_machine_soft_spi_obj_t *self = (mp_machine_soft_spi_obj_t*)self_in;
|
|
||||||
mp_soft_spi_transfer(&self->spi, len, src, dest);
|
|
||||||
}
|
|
||||||
|
|
||||||
const mp_machine_spi_p_t mp_machine_soft_spi_p = {
|
|
||||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_spi)
|
|
||||||
.init = mp_machine_soft_spi_init,
|
|
||||||
.deinit = NULL,
|
|
||||||
.transfer = mp_machine_soft_spi_transfer,
|
|
||||||
};
|
|
||||||
|
|
||||||
const mp_obj_type_t mp_machine_soft_spi_type = {
|
|
||||||
{ &mp_type_type },
|
|
||||||
.name = MP_QSTR_SoftSPI,
|
|
||||||
.print = mp_machine_soft_spi_print,
|
|
||||||
.make_new = mp_machine_spi_make_new, // delegate to master constructor
|
|
||||||
.protocol = &mp_machine_soft_spi_p,
|
|
||||||
.locals_dict = (mp_obj_dict_t*)&mp_machine_spi_locals_dict,
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // MICROPY_PY_MACHINE_SPI
|
|
@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the MicroPython project, http://micropython.org/
|
|
||||||
*
|
|
||||||
* The MIT License (MIT)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Damien P. George
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
* THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
#ifndef MICROPY_INCLUDED_EXTMOD_MACHINE_SPI_H
|
|
||||||
#define MICROPY_INCLUDED_EXTMOD_MACHINE_SPI_H
|
|
||||||
|
|
||||||
#include "py/obj.h"
|
|
||||||
#include "py/proto.h"
|
|
||||||
#include "py/mphal.h"
|
|
||||||
#include "drivers/bus/spi.h"
|
|
||||||
|
|
||||||
// SPI protocol
|
|
||||||
typedef struct _mp_machine_spi_p_t {
|
|
||||||
MP_PROTOCOL_HEAD
|
|
||||||
void (*init)(mp_obj_base_t *obj, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
||||||
void (*deinit)(mp_obj_base_t *obj); // can be NULL
|
|
||||||
void (*transfer)(mp_obj_base_t *obj, size_t len, const uint8_t *src, uint8_t *dest);
|
|
||||||
} mp_machine_spi_p_t;
|
|
||||||
|
|
||||||
typedef struct _mp_machine_soft_spi_obj_t {
|
|
||||||
mp_obj_base_t base;
|
|
||||||
mp_soft_spi_obj_t spi;
|
|
||||||
} mp_machine_soft_spi_obj_t;
|
|
||||||
|
|
||||||
extern const mp_machine_spi_p_t mp_machine_soft_spi_p;
|
|
||||||
extern const mp_obj_type_t mp_machine_soft_spi_type;
|
|
||||||
extern const mp_obj_dict_t mp_machine_spi_locals_dict;
|
|
||||||
|
|
||||||
mp_obj_t mp_machine_spi_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args);
|
|
||||||
|
|
||||||
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_machine_spi_read_obj);
|
|
||||||
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_machine_spi_readinto_obj);
|
|
||||||
MP_DECLARE_CONST_FUN_OBJ_2(mp_machine_spi_write_obj);
|
|
||||||
MP_DECLARE_CONST_FUN_OBJ_3(mp_machine_spi_write_readinto_obj);
|
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_EXTMOD_MACHINE_SPI_H
|
|
71
locale/ID.po
71
locale/ID.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -293,6 +293,7 @@ msgstr "Semua channel event yang disinkronisasi sedang digunakan"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Semua timer untuk pin ini sedang digunakan"
|
msgstr "Semua timer untuk pin ini sedang digunakan"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -300,7 +301,7 @@ msgstr "Semua timer untuk pin ini sedang digunakan"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Semua timer sedang digunakan"
|
msgstr "Semua timer sedang digunakan"
|
||||||
|
|
||||||
@ -582,6 +583,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Tidak dapat menginisialisasi UART"
|
msgstr "Tidak dapat menginisialisasi UART"
|
||||||
@ -828,10 +833,6 @@ msgstr "operasi I/O pada file tertutup"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "operasi I2C tidak didukung"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -973,7 +974,7 @@ msgstr "Pin untuk channel kanan tidak valid"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1441,6 +1442,10 @@ msgstr ""
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1627,6 +1632,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Baudrate tidak didukung"
|
msgstr "Baudrate tidak didukung"
|
||||||
|
|
||||||
@ -1743,11 +1749,11 @@ msgstr "abort() dipanggil"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "alamat %08x tidak selaras dengan %d bytes"
|
msgstr "alamat %08x tidak selaras dengan %d bytes"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1828,10 +1834,6 @@ msgstr ""
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bits harus memilki nilai 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1858,10 +1860,6 @@ msgstr ""
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "buffers harus mempunyai panjang yang sama"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1937,7 +1935,7 @@ msgstr ""
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2291,10 +2289,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "bit pertama(firstbit) harus berupa MSB"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2479,14 +2473,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "perangkat I2C tidak valid"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "perangkat SPI tidak valid"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "argumen-argumen tidak valid"
|
msgstr "argumen-argumen tidak valid"
|
||||||
@ -2663,10 +2649,6 @@ msgstr ""
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "harus menentukan semua pin sck/mosi/miso"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3455,6 +3437,9 @@ msgstr ""
|
|||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "GPIO16 tidak mendukung pull up"
|
#~ msgstr "GPIO16 tidak mendukung pull up"
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "operasi I2C tidak didukung"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Bit clock pada pin tidak valid"
|
#~ msgstr "Bit clock pada pin tidak valid"
|
||||||
|
|
||||||
@ -3546,9 +3531,15 @@ msgstr ""
|
|||||||
#~ msgid "[addrinfo error %d]"
|
#~ msgid "[addrinfo error %d]"
|
||||||
#~ msgstr "[addrinfo error %d]"
|
#~ msgstr "[addrinfo error %d]"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bits harus memilki nilai 8"
|
||||||
|
|
||||||
#~ msgid "buffer too long"
|
#~ msgid "buffer too long"
|
||||||
#~ msgstr "buffer terlalu panjang"
|
#~ msgstr "buffer terlalu panjang"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "buffers harus mempunyai panjang yang sama"
|
||||||
|
|
||||||
#~ msgid "can query only one param"
|
#~ msgid "can query only one param"
|
||||||
#~ msgstr "hanya bisa melakukan query satu param"
|
#~ msgstr "hanya bisa melakukan query satu param"
|
||||||
|
|
||||||
@ -3573,6 +3564,9 @@ msgstr ""
|
|||||||
#~ msgid "ffi_prep_closure_loc"
|
#~ msgid "ffi_prep_closure_loc"
|
||||||
#~ msgstr "ffi_prep_closure_loc"
|
#~ msgstr "ffi_prep_closure_loc"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "bit pertama(firstbit) harus berupa MSB"
|
||||||
|
|
||||||
#~ msgid "flash location must be below 1MByte"
|
#~ msgid "flash location must be below 1MByte"
|
||||||
#~ msgstr "alokasi flash harus dibawah 1MByte"
|
#~ msgstr "alokasi flash harus dibawah 1MByte"
|
||||||
|
|
||||||
@ -3582,6 +3576,12 @@ msgstr ""
|
|||||||
#~ msgid "impossible baudrate"
|
#~ msgid "impossible baudrate"
|
||||||
#~ msgstr "baudrate tidak memungkinkan"
|
#~ msgstr "baudrate tidak memungkinkan"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "perangkat I2C tidak valid"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "perangkat SPI tidak valid"
|
||||||
|
|
||||||
#~ msgid "invalid alarm"
|
#~ msgid "invalid alarm"
|
||||||
#~ msgstr "alarm tidak valid"
|
#~ msgstr "alarm tidak valid"
|
||||||
|
|
||||||
@ -3603,6 +3603,9 @@ msgstr ""
|
|||||||
#~ msgid "memory allocation failed, allocating %u bytes for native code"
|
#~ msgid "memory allocation failed, allocating %u bytes for native code"
|
||||||
#~ msgstr "alokasi memori gagal, mengalokasikan %u byte untuk kode native"
|
#~ msgstr "alokasi memori gagal, mengalokasikan %u byte untuk kode native"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "harus menentukan semua pin sck/mosi/miso"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "keyword harus berupa string"
|
#~ msgstr "keyword harus berupa string"
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-24 11:10+0200\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -291,6 +291,7 @@ msgstr ""
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -298,7 +299,7 @@ msgstr ""
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -821,10 +822,6 @@ msgstr ""
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -966,7 +963,7 @@ msgstr ""
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1729,11 +1726,11 @@ msgstr ""
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1814,10 +1811,6 @@ msgstr ""
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1843,10 +1836,6 @@ msgstr ""
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1922,7 +1911,7 @@ msgstr ""
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2276,10 +2265,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2464,14 +2449,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2648,10 +2625,6 @@ msgstr ""
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
50
locale/cs.po
50
locale/cs.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2020-05-24 03:22+0000\n"
|
"PO-Revision-Date: 2020-05-24 03:22+0000\n"
|
||||||
"Last-Translator: dronecz <mzuzelka@gmail.com>\n"
|
"Last-Translator: dronecz <mzuzelka@gmail.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -299,6 +299,7 @@ msgstr ""
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -306,7 +307,7 @@ msgstr ""
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -580,6 +581,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -825,10 +830,6 @@ msgstr ""
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -970,7 +971,7 @@ msgstr ""
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1433,6 +1434,10 @@ msgstr ""
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1619,6 +1624,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1728,11 +1734,11 @@ msgstr ""
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1813,10 +1819,6 @@ msgstr ""
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1842,10 +1844,6 @@ msgstr ""
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1921,7 +1919,7 @@ msgstr ""
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2275,10 +2273,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2463,14 +2457,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2647,10 +2633,6 @@ msgstr ""
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -7,11 +7,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2020-06-16 18:24+0000\n"
|
"PO-Revision-Date: 2020-06-16 18:24+0000\n"
|
||||||
"Last-Translator: Andreas Buchen <andreas.buchen@gmail.com>\n"
|
"Last-Translator: Andreas Buchen <andreas.buchen@gmail.com>\n"
|
||||||
"Language-Team: German <https://later.unpythonic.net/projects/circuitpython/"
|
|
||||||
"circuitpython-master/de/>\n"
|
|
||||||
"Language: de_DE\n"
|
"Language: de_DE\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -300,6 +298,7 @@ msgstr "Alle sync event Kanäle werden benutzt"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Alle timer für diesen Pin werden bereits benutzt"
|
msgstr "Alle timer für diesen Pin werden bereits benutzt"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -307,7 +306,7 @@ msgstr "Alle timer für diesen Pin werden bereits benutzt"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Alle timer werden benutzt"
|
msgstr "Alle timer werden benutzt"
|
||||||
|
|
||||||
@ -592,6 +591,10 @@ msgstr "Beschädigte .mpy Datei"
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr "Beschädigter raw code"
|
msgstr "Beschädigter raw code"
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Konnte UART nicht initialisieren"
|
msgstr "Konnte UART nicht initialisieren"
|
||||||
@ -842,10 +845,6 @@ msgstr "Lese/Schreibe-operation an geschlossener Datei"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr "I2C-Init-Fehler"
|
msgstr "I2C-Init-Fehler"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "I2C-operation nicht unterstützt"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -989,7 +988,7 @@ msgstr "Ungültiger Pin für rechten Kanal"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1465,6 +1464,10 @@ msgstr "Stream fehlt readinto() oder write() Methode."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr "Geben Sie mindestens einen UART-Pin an"
|
msgstr "Geben Sie mindestens einen UART-Pin an"
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr "Zeitüberschreitung beim Auslesen der Temperatur"
|
msgstr "Zeitüberschreitung beim Auslesen der Temperatur"
|
||||||
@ -1669,6 +1672,7 @@ msgstr ""
|
|||||||
"Eingabeaufforderung auf dem anderen Gerät abgelehnt oder ignoriert."
|
"Eingabeaufforderung auf dem anderen Gerät abgelehnt oder ignoriert."
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Baudrate wird nicht unterstützt"
|
msgstr "Baudrate wird nicht unterstützt"
|
||||||
|
|
||||||
@ -1787,11 +1791,11 @@ msgstr "abort() wurde aufgerufen"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "Addresse %08x ist nicht an %d bytes ausgerichtet"
|
msgstr "Addresse %08x ist nicht an %d bytes ausgerichtet"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "Adresse außerhalb der Grenzen"
|
msgstr "Adresse außerhalb der Grenzen"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "adresses ist leer"
|
msgstr "adresses ist leer"
|
||||||
|
|
||||||
@ -1872,10 +1876,6 @@ msgstr "Der binäre Operator %q ist nicht implementiert"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "bits muss 7, 8 oder 9 sein"
|
msgstr "bits muss 7, 8 oder 9 sein"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bits müssen 8 sein"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "Es müssen 8 oder 16 bits_per_sample sein"
|
msgstr "Es müssen 8 oder 16 bits_per_sample sein"
|
||||||
@ -1901,10 +1901,6 @@ msgstr "Puffersegmente müssen gleich lang sein"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "Der Puffer ist zu klein"
|
msgstr "Der Puffer ist zu klein"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "Buffer müssen gleich lang sein"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr "Tasten müssen digitalio.DigitalInOut sein"
|
msgstr "Tasten müssen digitalio.DigitalInOut sein"
|
||||||
@ -1982,7 +1978,7 @@ msgstr "Kann '%q' Objekt nicht implizit nach %q konvertieren"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "kann NaN nicht nach int konvertieren"
|
msgstr "kann NaN nicht nach int konvertieren"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "kann Adresse nicht in int konvertieren"
|
msgstr "kann Adresse nicht in int konvertieren"
|
||||||
|
|
||||||
@ -2347,10 +2343,6 @@ msgstr "Das erste Argument muss ein Ndarray sein"
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr "Das erste Argument für super() muss type sein"
|
msgstr "Das erste Argument für super() muss type sein"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "Erstes Bit muss das höchstwertigste Bit (MSB) sein"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr "Die Abflachungsreihenfolge muss entweder \"C\" oder \"F\" sein"
|
msgstr "Die Abflachungsreihenfolge muss entweder \"C\" oder \"F\" sein"
|
||||||
@ -2536,14 +2528,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr "Das Intervall muss im Bereich %s-%s sein"
|
msgstr "Das Intervall muss im Bereich %s-%s sein"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "ungültige I2C Schnittstelle"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "ungültige SPI Schnittstelle"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "ungültige argumente"
|
msgstr "ungültige argumente"
|
||||||
@ -2726,10 +2710,6 @@ msgstr "Mehrfache Vererbung nicht unterstützt"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "muss ein Objekt verursachen (raise)"
|
msgstr "muss ein Objekt verursachen (raise)"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "sck/mosi/miso müssen alle spezifiziert sein"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr "muss Schlüsselwortargument für key function verwenden"
|
msgstr "muss Schlüsselwortargument für key function verwenden"
|
||||||
@ -3562,6 +3542,9 @@ msgstr "Nullschritt"
|
|||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "GPIO16 unterstützt pull up nicht"
|
#~ msgstr "GPIO16 unterstützt pull up nicht"
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "I2C-operation nicht unterstützt"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Ungültiges bit clock pin"
|
#~ msgstr "Ungültiges bit clock pin"
|
||||||
|
|
||||||
@ -3711,12 +3694,18 @@ msgstr "Nullschritt"
|
|||||||
#~ "Sie laufen im abgesicherten Modus, was bedeutet, dass etwas Unerwartetes "
|
#~ "Sie laufen im abgesicherten Modus, was bedeutet, dass etwas Unerwartetes "
|
||||||
#~ "passiert ist.\n"
|
#~ "passiert ist.\n"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bits müssen 8 sein"
|
||||||
|
|
||||||
#~ msgid "buf is too small. need %d bytes"
|
#~ msgid "buf is too small. need %d bytes"
|
||||||
#~ msgstr "buf ist zu klein. brauche %d Bytes"
|
#~ msgstr "buf ist zu klein. brauche %d Bytes"
|
||||||
|
|
||||||
#~ msgid "buffer too long"
|
#~ msgid "buffer too long"
|
||||||
#~ msgstr "Buffer zu lang"
|
#~ msgstr "Buffer zu lang"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "Buffer müssen gleich lang sein"
|
||||||
|
|
||||||
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
||||||
#~ msgstr "byteorder ist keine Instanz von ByteOrder (%s erhalten)"
|
#~ msgstr "byteorder ist keine Instanz von ByteOrder (%s erhalten)"
|
||||||
|
|
||||||
@ -3732,6 +3721,9 @@ msgstr "Nullschritt"
|
|||||||
#~ msgid "ffi_prep_closure_loc"
|
#~ msgid "ffi_prep_closure_loc"
|
||||||
#~ msgstr "ffi_prep_closure_loc"
|
#~ msgstr "ffi_prep_closure_loc"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "Erstes Bit muss das höchstwertigste Bit (MSB) sein"
|
||||||
|
|
||||||
#~ msgid "flash location must be below 1MByte"
|
#~ msgid "flash location must be below 1MByte"
|
||||||
#~ msgstr "flash location muss unter 1MByte sein"
|
#~ msgstr "flash location muss unter 1MByte sein"
|
||||||
|
|
||||||
@ -3744,6 +3736,12 @@ msgstr "Nullschritt"
|
|||||||
#~ msgid "interval not in range 0.0020 to 10.24"
|
#~ msgid "interval not in range 0.0020 to 10.24"
|
||||||
#~ msgstr "Das Interval ist nicht im Bereich 0.0020 bis 10.24"
|
#~ msgstr "Das Interval ist nicht im Bereich 0.0020 bis 10.24"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "ungültige I2C Schnittstelle"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "ungültige SPI Schnittstelle"
|
||||||
|
|
||||||
#~ msgid "invalid alarm"
|
#~ msgid "invalid alarm"
|
||||||
#~ msgstr "ungültiger Alarm"
|
#~ msgstr "ungültiger Alarm"
|
||||||
|
|
||||||
@ -3766,6 +3764,9 @@ msgstr "Nullschritt"
|
|||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Speicherallozierung fehlgeschlagen, alloziere %u Bytes für nativen Code"
|
#~ "Speicherallozierung fehlgeschlagen, alloziere %u Bytes für nativen Code"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "sck/mosi/miso müssen alle spezifiziert sein"
|
||||||
|
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "name muss ein String sein"
|
#~ msgstr "name muss ein String sein"
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 08:56-0500\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -291,6 +291,7 @@ msgstr ""
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -298,7 +299,7 @@ msgstr ""
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -572,6 +573,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -817,10 +822,6 @@ msgstr ""
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -962,7 +963,7 @@ msgstr ""
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1425,6 +1426,10 @@ msgstr ""
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1611,6 +1616,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1652,6 +1658,26 @@ msgstr ""
|
|||||||
msgid "WARNING: Your code filename has two extensions\n"
|
msgid "WARNING: Your code filename has two extensions\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "WatchDogTimer is not currently running"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "WatchDogTimer.timeout must be greater than 0"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: supervisor/shared/safe_mode.c
|
||||||
|
msgid "Watchdog timer expired."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/builtinhelp.c
|
#: py/builtinhelp.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1700,11 +1726,11 @@ msgstr ""
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1785,10 +1811,6 @@ msgstr ""
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1814,10 +1836,6 @@ msgstr ""
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1893,7 +1911,7 @@ msgstr ""
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2247,10 +2265,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2435,14 +2449,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2619,10 +2625,6 @@ msgstr ""
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3059,6 +3061,10 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||||
|
msgid "timeout duration exceeded the maximum supported value"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout must be 0.0-100.0 seconds"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3212,6 +3218,10 @@ msgstr ""
|
|||||||
msgid "value_count must be > 0"
|
msgid "value_count must be > 0"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "watchdog timeout must be greater than 0"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "window must be <= interval"
|
msgid "window must be <= interval"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -7,11 +7,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 08:56-0500\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2020-03-30 22:11+0000\n"
|
"PO-Revision-Date: 2020-03-30 22:11+0000\n"
|
||||||
"Last-Translator: Tannewt <devnull@unpythonic.net>\n"
|
"Last-Translator: Tannewt <devnull@unpythonic.net>\n"
|
||||||
"Language-Team: English <https://later.unpythonic.net/projects/circuitpython/"
|
|
||||||
"circuitpython-master/en_X@pirate/>\n"
|
|
||||||
"Language: en_x_pirate\n"
|
"Language: en_x_pirate\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@ -298,6 +296,7 @@ msgstr ""
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -305,7 +304,7 @@ msgstr ""
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -581,6 +580,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -826,10 +829,6 @@ msgstr ""
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -971,7 +970,7 @@ msgstr "Belay that! Invalid pin for starboard-side channel"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1434,6 +1433,10 @@ msgstr ""
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1620,6 +1623,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1661,6 +1665,26 @@ msgstr ""
|
|||||||
msgid "WARNING: Your code filename has two extensions\n"
|
msgid "WARNING: Your code filename has two extensions\n"
|
||||||
msgstr "Blimey! Yer code filename has two extensions\n"
|
msgstr "Blimey! Yer code filename has two extensions\n"
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "WatchDogTimer is not currently running"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "WatchDogTimer.mode cannot be changed once set to WatchDogMode.RESET"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "WatchDogTimer.timeout must be greater than 0"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: supervisor/shared/safe_mode.c
|
||||||
|
msgid "Watchdog timer expired."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: py/builtinhelp.c
|
#: py/builtinhelp.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1709,11 +1733,11 @@ msgstr ""
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1794,10 +1818,6 @@ msgstr ""
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "pieces must be of 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1823,10 +1843,6 @@ msgstr ""
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "yer buffers must be of the same length"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1902,7 +1918,7 @@ msgstr ""
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2256,10 +2272,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2444,14 +2456,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "Belay that! I2C peripheral be invalid"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "Arr! SPI peripheral be invalid"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2628,10 +2632,6 @@ msgstr ""
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3068,6 +3068,10 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||||
|
msgid "timeout duration exceeded the maximum supported value"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout must be 0.0-100.0 seconds"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3221,6 +3225,10 @@ msgstr ""
|
|||||||
msgid "value_count must be > 0"
|
msgid "value_count must be > 0"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/watchdog/WatchDogTimer.c
|
||||||
|
msgid "watchdog timeout must be greater than 0"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/Adapter.c
|
#: shared-bindings/_bleio/Adapter.c
|
||||||
msgid "window must be <= interval"
|
msgid "window must be <= interval"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3283,3 +3291,15 @@ msgstr ""
|
|||||||
|
|
||||||
#~ msgid "Invalid clock pin"
|
#~ msgid "Invalid clock pin"
|
||||||
#~ msgstr "Avast! Clock pin be invalid"
|
#~ msgstr "Avast! Clock pin be invalid"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "pieces must be of 8"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "yer buffers must be of the same length"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "Belay that! I2C peripheral be invalid"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "Arr! SPI peripheral be invalid"
|
||||||
|
71
locale/es.po
71
locale/es.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2020-06-24 18:32+0000\n"
|
"PO-Revision-Date: 2020-06-24 18:32+0000\n"
|
||||||
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
|
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -302,6 +302,7 @@ msgstr ""
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Todos los timers para este pin están siendo utilizados"
|
msgstr "Todos los timers para este pin están siendo utilizados"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -309,7 +310,7 @@ msgstr "Todos los timers para este pin están siendo utilizados"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Todos los timers en uso"
|
msgstr "Todos los timers en uso"
|
||||||
|
|
||||||
@ -589,6 +590,10 @@ msgstr "Archivo .mpy corrupto"
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr "Código crudo corrupto"
|
msgstr "Código crudo corrupto"
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "No se puede inicializar la UART"
|
msgstr "No se puede inicializar la UART"
|
||||||
@ -835,10 +840,6 @@ msgstr "Operación I/O en archivo cerrado"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr "Error de inicio de I2C"
|
msgstr "Error de inicio de I2C"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "operación I2C no soportada"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -982,7 +983,7 @@ msgstr "Pin inválido para canal derecho"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1452,6 +1453,10 @@ msgstr "A Stream le falta el método readinto() o write()."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr "Suministre al menos un pin UART"
|
msgstr "Suministre al menos un pin UART"
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr "Lectura de temperatura expirada"
|
msgstr "Lectura de temperatura expirada"
|
||||||
@ -1640,6 +1645,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Baudrate no soportado"
|
msgstr "Baudrate no soportado"
|
||||||
|
|
||||||
@ -1756,11 +1762,11 @@ msgstr "se llamó abort()"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "la dirección %08x no esta alineada a %d bytes"
|
msgstr "la dirección %08x no esta alineada a %d bytes"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "address fuera de límites"
|
msgstr "address fuera de límites"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "addresses esta vacío"
|
msgstr "addresses esta vacío"
|
||||||
|
|
||||||
@ -1841,10 +1847,6 @@ msgstr "operacion binaria %q no implementada"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "bits deben ser 7, 8 ó 9"
|
msgstr "bits deben ser 7, 8 ó 9"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bits debe ser 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "bits_per_sample debe ser 8 ó 16"
|
msgstr "bits_per_sample debe ser 8 ó 16"
|
||||||
@ -1871,10 +1873,6 @@ msgstr "Las secciones del buffer necesitan tener longitud igual"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "buffer demasiado pequeño"
|
msgstr "buffer demasiado pequeño"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "los buffers deben de tener la misma longitud"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr "los botones necesitan ser digitalio.DigitalInOut"
|
msgstr "los botones necesitan ser digitalio.DigitalInOut"
|
||||||
@ -1950,7 +1948,7 @@ msgstr "no se puede convertir el objeto '%q' a %q implícitamente"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "no se puede convertir Nan a int"
|
msgstr "no se puede convertir Nan a int"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "no se puede convertir address a int"
|
msgstr "no se puede convertir address a int"
|
||||||
|
|
||||||
@ -2311,10 +2309,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr "primer argumento para super() debe ser de tipo"
|
msgstr "primer argumento para super() debe ser de tipo"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "firstbit debe ser MSB"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2499,14 +2493,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "periférico I2C inválido"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "periférico SPI inválido"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "argumentos inválidos"
|
msgstr "argumentos inválidos"
|
||||||
@ -2686,10 +2672,6 @@ msgstr "herencia multiple no soportada"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "debe hacer un raise de un objeto"
|
msgstr "debe hacer un raise de un objeto"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "se deben de especificar sck/mosi/miso"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr "debe utilizar argumento de palabra clave para la función clave"
|
msgstr "debe utilizar argumento de palabra clave para la función clave"
|
||||||
@ -3526,6 +3508,9 @@ msgstr "paso cero"
|
|||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "GPIO16 no soporta pull up."
|
#~ msgstr "GPIO16 no soporta pull up."
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "operación I2C no soportada"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Pin bit clock inválido"
|
#~ msgstr "Pin bit clock inválido"
|
||||||
|
|
||||||
@ -3695,12 +3680,18 @@ msgstr "paso cero"
|
|||||||
#~ msgid "bad GATT role"
|
#~ msgid "bad GATT role"
|
||||||
#~ msgstr "mal GATT role"
|
#~ msgstr "mal GATT role"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bits debe ser 8"
|
||||||
|
|
||||||
#~ msgid "buf is too small. need %d bytes"
|
#~ 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"
|
||||||
|
|
||||||
#~ msgid "buffer too long"
|
#~ msgid "buffer too long"
|
||||||
#~ msgstr "buffer demasiado largo"
|
#~ msgstr "buffer demasiado largo"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "los buffers deben de tener la misma longitud"
|
||||||
|
|
||||||
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
||||||
#~ msgstr "byteorder no es instancia de ByteOrder (encontarmos un %s)"
|
#~ msgstr "byteorder no es instancia de ByteOrder (encontarmos un %s)"
|
||||||
|
|
||||||
@ -3737,6 +3728,9 @@ msgstr "paso cero"
|
|||||||
#~ msgid "ffi_prep_closure_loc"
|
#~ msgid "ffi_prep_closure_loc"
|
||||||
#~ msgstr "ffi_prep_closure_loc"
|
#~ msgstr "ffi_prep_closure_loc"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "firstbit debe ser MSB"
|
||||||
|
|
||||||
#~ msgid "flash location must be below 1MByte"
|
#~ msgid "flash location must be below 1MByte"
|
||||||
#~ msgstr "la ubicación de la flash debe estar debajo de 1MByte"
|
#~ msgstr "la ubicación de la flash debe estar debajo de 1MByte"
|
||||||
|
|
||||||
@ -3749,6 +3743,12 @@ msgstr "paso cero"
|
|||||||
#~ msgid "interval not in range 0.0020 to 10.24"
|
#~ msgid "interval not in range 0.0020 to 10.24"
|
||||||
#~ msgstr "El intervalo está fuera del rango de 0.0020 a 10.24"
|
#~ msgstr "El intervalo está fuera del rango de 0.0020 a 10.24"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "periférico I2C inválido"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "periférico SPI inválido"
|
||||||
|
|
||||||
#~ msgid "invalid alarm"
|
#~ msgid "invalid alarm"
|
||||||
#~ msgstr "alarma inválida"
|
#~ msgstr "alarma inválida"
|
||||||
|
|
||||||
@ -3771,6 +3771,9 @@ msgstr "paso cero"
|
|||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "falló la asignación de memoria, asignando %u bytes para código nativo"
|
#~ "falló la asignación de memoria, asignando %u bytes para código nativo"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "se deben de especificar sck/mosi/miso"
|
||||||
|
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "name debe de ser un string"
|
#~ msgstr "name debe de ser un string"
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
||||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||||
"Language-Team: fil\n"
|
"Language-Team: fil\n"
|
||||||
@ -295,6 +295,7 @@ msgstr "Lahat ng sync event channels ay ginagamit"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Lahat ng timers para sa pin na ito ay ginagamit"
|
msgstr "Lahat ng timers para sa pin na ito ay ginagamit"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -302,7 +303,7 @@ msgstr "Lahat ng timers para sa pin na ito ay ginagamit"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Lahat ng timer ginagamit"
|
msgstr "Lahat ng timer ginagamit"
|
||||||
|
|
||||||
@ -581,6 +582,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Hindi ma-initialize ang UART"
|
msgstr "Hindi ma-initialize ang UART"
|
||||||
@ -831,10 +836,6 @@ msgstr "I/O operasyon sa saradong file"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "Hindi supportado ang operasyong I2C"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -978,7 +979,7 @@ msgstr "Mali ang pin para sa kanang channel"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1448,6 +1449,10 @@ msgstr "Stream kulang ng readinto() o write() method."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1635,6 +1640,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Hindi supportadong baudrate"
|
msgstr "Hindi supportadong baudrate"
|
||||||
|
|
||||||
@ -1753,11 +1759,11 @@ msgstr "abort() tinawag"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "address %08x ay hindi pantay sa %d bytes"
|
msgstr "address %08x ay hindi pantay sa %d bytes"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "wala sa sakop ang address"
|
msgstr "wala sa sakop ang address"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "walang laman ang address"
|
msgstr "walang laman ang address"
|
||||||
|
|
||||||
@ -1838,10 +1844,6 @@ msgstr "binary op %q hindi implemented"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "bits ay dapat 7, 8 o 9"
|
msgstr "bits ay dapat 7, 8 o 9"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bits ay dapat walo (8)"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "bits_per_sample ay dapat 8 o 16"
|
msgstr "bits_per_sample ay dapat 8 o 16"
|
||||||
@ -1868,10 +1870,6 @@ msgstr "aarehas na haba dapat ang buffer slices"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "masyadong maliit ang buffer"
|
msgstr "masyadong maliit ang buffer"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "ang buffers ay dapat parehas sa haba"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1948,7 +1946,7 @@ msgstr "hindi maaaring i-convert ang '%q' na bagay sa %q nang walang pahiwatig"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "hindi ma i-convert NaN sa int"
|
msgstr "hindi ma i-convert NaN sa int"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "hindi ma i-convert ang address sa INT"
|
msgstr "hindi ma i-convert ang address sa INT"
|
||||||
|
|
||||||
@ -2312,10 +2310,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr "unang argument ng super() ay dapat type"
|
msgstr "unang argument ng super() ay dapat type"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "firstbit ay dapat MSB"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2501,14 +2495,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "maling I2C peripheral"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "hindi wastong SPI peripheral"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "mali ang mga argumento"
|
msgstr "mali ang mga argumento"
|
||||||
@ -2689,10 +2675,6 @@ msgstr "maraming inhertance hindi sinusuportahan"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "dapat itaas ang isang object"
|
msgstr "dapat itaas ang isang object"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "dapat tukuyin lahat ng SCK/MOSI/MISO"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr "dapat gumamit ng keyword argument para sa key function"
|
msgstr "dapat gumamit ng keyword argument para sa key function"
|
||||||
@ -3506,6 +3488,9 @@ msgstr "zero step"
|
|||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "Walang pull down support ang GPI016."
|
#~ msgstr "Walang pull down support ang GPI016."
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "Hindi supportado ang operasyong I2C"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Mali ang bit clock pin"
|
#~ msgstr "Mali ang bit clock pin"
|
||||||
|
|
||||||
@ -3647,9 +3632,15 @@ msgstr "zero step"
|
|||||||
#~ msgid "[addrinfo error %d]"
|
#~ msgid "[addrinfo error %d]"
|
||||||
#~ msgstr "[addrinfo error %d]"
|
#~ msgstr "[addrinfo error %d]"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bits ay dapat walo (8)"
|
||||||
|
|
||||||
#~ msgid "buffer too long"
|
#~ msgid "buffer too long"
|
||||||
#~ msgstr "masyadong mahaba ng buffer"
|
#~ msgstr "masyadong mahaba ng buffer"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "ang buffers ay dapat parehas sa haba"
|
||||||
|
|
||||||
#~ msgid "can query only one param"
|
#~ msgid "can query only one param"
|
||||||
#~ msgstr "maaaring i-query lamang ang isang param"
|
#~ msgstr "maaaring i-query lamang ang isang param"
|
||||||
|
|
||||||
@ -3680,6 +3671,9 @@ msgstr "zero step"
|
|||||||
#~ msgid "ffi_prep_closure_loc"
|
#~ msgid "ffi_prep_closure_loc"
|
||||||
#~ msgstr "ffi_prep_closure_loc"
|
#~ msgstr "ffi_prep_closure_loc"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "firstbit ay dapat MSB"
|
||||||
|
|
||||||
#~ msgid "flash location must be below 1MByte"
|
#~ msgid "flash location must be below 1MByte"
|
||||||
#~ msgstr "dapat na mas mababa sa 1MB ang lokasyon ng flash"
|
#~ msgstr "dapat na mas mababa sa 1MB ang lokasyon ng flash"
|
||||||
|
|
||||||
@ -3689,6 +3683,12 @@ msgstr "zero step"
|
|||||||
#~ msgid "impossible baudrate"
|
#~ msgid "impossible baudrate"
|
||||||
#~ msgstr "impossibleng baudrate"
|
#~ msgstr "impossibleng baudrate"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "maling I2C peripheral"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "hindi wastong SPI peripheral"
|
||||||
|
|
||||||
#~ msgid "invalid alarm"
|
#~ msgid "invalid alarm"
|
||||||
#~ msgstr "mali ang alarm"
|
#~ msgstr "mali ang alarm"
|
||||||
|
|
||||||
@ -3711,6 +3711,9 @@ msgstr "zero step"
|
|||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "nabigo ang paglalaan ng memorya, naglalaan ng %u bytes para sa native code"
|
#~ "nabigo ang paglalaan ng memorya, naglalaan ng %u bytes para sa native code"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "dapat tukuyin lahat ng SCK/MOSI/MISO"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "ang keywords dapat strings"
|
#~ msgstr "ang keywords dapat strings"
|
||||||
|
73
locale/fr.po
73
locale/fr.po
@ -8,11 +8,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 0.1\n"
|
"Project-Id-Version: 0.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2020-06-05 17:29+0000\n"
|
"PO-Revision-Date: 2020-06-05 17:29+0000\n"
|
||||||
"Last-Translator: aberwag <aberwag@gmail.com>\n"
|
"Last-Translator: aberwag <aberwag@gmail.com>\n"
|
||||||
"Language-Team: French <https://later.unpythonic.net/projects/circuitpython/"
|
|
||||||
"circuitpython-master/fr/>\n"
|
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
@ -304,6 +302,7 @@ msgstr "Tous les canaux d'événements de synchro sont utilisés"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Tous les timers pour cette broche sont utilisés"
|
msgstr "Tous les timers pour cette broche sont utilisés"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -311,7 +310,7 @@ msgstr "Tous les timers pour cette broche sont utilisés"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Tous les timers sont utilisés"
|
msgstr "Tous les timers sont utilisés"
|
||||||
|
|
||||||
@ -599,6 +598,10 @@ msgstr "Fichier .mpy corrompu"
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr "Code brut corrompu"
|
msgstr "Code brut corrompu"
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "L'UART n'a pu être initialisé"
|
msgstr "L'UART n'a pu être initialisé"
|
||||||
@ -846,10 +849,6 @@ msgstr "opération d'E/S sur un fichier fermé"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr "Erreur d'initialisation I2C"
|
msgstr "Erreur d'initialisation I2C"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "opération sur I2C non supportée"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -993,7 +992,7 @@ msgstr "Broche invalide pour le canal droit"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1469,6 +1468,10 @@ msgstr "Il manque une méthode readinto() ou write() au flux."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr "Fournissez au moins une broche UART"
|
msgstr "Fournissez au moins une broche UART"
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr "Temporisation de lecture dépassée"
|
msgstr "Temporisation de lecture dépassée"
|
||||||
@ -1671,6 +1674,7 @@ msgstr ""
|
|||||||
"appareil ait été refusée ou ignorée."
|
"appareil ait été refusée ou ignorée."
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Débit non supporté"
|
msgstr "Débit non supporté"
|
||||||
|
|
||||||
@ -1790,11 +1794,11 @@ msgstr "abort() appelé"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "l'adresse %08x n'est pas alignée sur %d octets"
|
msgstr "l'adresse %08x n'est pas alignée sur %d octets"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "adresse hors limites"
|
msgstr "adresse hors limites"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "adresses vides"
|
msgstr "adresses vides"
|
||||||
|
|
||||||
@ -1875,10 +1879,6 @@ msgstr "opération binaire '%q' non implémentée"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "bits doivent être 7, 8 ou 9"
|
msgstr "bits doivent être 7, 8 ou 9"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "les bits doivent être 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "'bits_per_sample' doivent être 8 ou 16"
|
msgstr "'bits_per_sample' doivent être 8 ou 16"
|
||||||
@ -1904,10 +1904,6 @@ msgstr "les tranches de tampon doivent être de longueurs égales"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "tampon trop petit"
|
msgstr "tampon trop petit"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "les tampons doivent être de la même longueur"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr "les boutons doivent être des digitalio.DigitalInOut"
|
msgstr "les boutons doivent être des digitalio.DigitalInOut"
|
||||||
@ -1984,7 +1980,7 @@ msgstr "impossible de convertir l'objet '%q' en '%q' implicitement"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "on ne peut convertir NaN en entier 'int'"
|
msgstr "on ne peut convertir NaN en entier 'int'"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "ne peut convertir l'adresse en entier 'int'"
|
msgstr "ne peut convertir l'adresse en entier 'int'"
|
||||||
|
|
||||||
@ -2353,10 +2349,6 @@ msgstr "le premier argument doit être un ndarray"
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr "le premier argument de super() doit être un type"
|
msgstr "le premier argument de super() doit être un type"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "le 1er bit doit être le MSB"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr "l'ordre d'aplatissement doit être «C» ou «F»"
|
msgstr "l'ordre d'aplatissement doit être «C» ou «F»"
|
||||||
@ -2543,14 +2535,6 @@ msgstr "interp est défini pour les tableaux 1D de longueur égale"
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr "l'intervalle doit être dans la plage %s-%s"
|
msgstr "l'intervalle doit être dans la plage %s-%s"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "périphérique I2C invalide"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "périphérique SPI invalide"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "arguments invalides"
|
msgstr "arguments invalides"
|
||||||
@ -2731,10 +2715,6 @@ msgstr "héritages multiples non supportés"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "doit lever un objet"
|
msgstr "doit lever un objet"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "sck, mosi et miso doivent tous être spécifiés"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr "doit utiliser un argument nommé pour une fonction key"
|
msgstr "doit utiliser un argument nommé pour une fonction key"
|
||||||
@ -3581,6 +3561,9 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "Le GPIO16 ne supporte pas le tirage (pull-up)"
|
#~ msgstr "Le GPIO16 ne supporte pas le tirage (pull-up)"
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "opération sur I2C non supportée"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Broche invalide pour 'bit clock'"
|
#~ msgstr "Broche invalide pour 'bit clock'"
|
||||||
|
|
||||||
@ -3750,12 +3733,18 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "bad GATT role"
|
#~ msgid "bad GATT role"
|
||||||
#~ msgstr "mauvais rôle GATT"
|
#~ msgstr "mauvais rôle GATT"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "les bits doivent être 8"
|
||||||
|
|
||||||
#~ msgid "buf is too small. need %d bytes"
|
#~ msgid "buf is too small. need %d bytes"
|
||||||
#~ msgstr "'buf' est trop petit. Besoin de %d octets"
|
#~ msgstr "'buf' est trop petit. Besoin de %d octets"
|
||||||
|
|
||||||
#~ msgid "buffer too long"
|
#~ msgid "buffer too long"
|
||||||
#~ msgstr "tampon trop long"
|
#~ msgstr "tampon trop long"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "les tampons doivent être de la même longueur"
|
||||||
|
|
||||||
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
||||||
#~ msgstr "'byteorder' n'est pas une instance de ByteOrder (reçu un %s)"
|
#~ msgstr "'byteorder' n'est pas une instance de ByteOrder (reçu un %s)"
|
||||||
|
|
||||||
@ -3794,6 +3783,9 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "expecting a pin"
|
#~ msgid "expecting a pin"
|
||||||
#~ msgstr "une broche (Pin) est attendue"
|
#~ msgstr "une broche (Pin) est attendue"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "le 1er bit doit être le MSB"
|
||||||
|
|
||||||
#~ msgid "flash location must be below 1MByte"
|
#~ msgid "flash location must be below 1MByte"
|
||||||
#~ msgstr "l'emplacement en mémoire flash doit être inférieur à 1Mo"
|
#~ msgstr "l'emplacement en mémoire flash doit être inférieur à 1Mo"
|
||||||
|
|
||||||
@ -3806,6 +3798,12 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "interval not in range 0.0020 to 10.24"
|
#~ msgid "interval not in range 0.0020 to 10.24"
|
||||||
#~ msgstr "intervalle hors bornes 0.0020 à 10.24"
|
#~ msgstr "intervalle hors bornes 0.0020 à 10.24"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "périphérique I2C invalide"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "périphérique SPI invalide"
|
||||||
|
|
||||||
#~ msgid "invalid alarm"
|
#~ msgid "invalid alarm"
|
||||||
#~ msgstr "alarme invalide"
|
#~ msgstr "alarme invalide"
|
||||||
|
|
||||||
@ -3828,6 +3826,9 @@ msgstr "'step' nul"
|
|||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "l'allocation de mémoire a échoué en allouant %u octets pour un code natif"
|
#~ "l'allocation de mémoire a échoué en allouant %u octets pour un code natif"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "sck, mosi et miso doivent tous être spécifiés"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "les noms doivent être des chaînes de caractère"
|
#~ msgstr "les noms doivent être des chaînes de caractère"
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
||||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -294,6 +294,7 @@ msgstr "Tutti i canali di eventi sincronizzati in uso"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Tutti i timer per questo pin sono in uso"
|
msgstr "Tutti i timer per questo pin sono in uso"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -301,7 +302,7 @@ msgstr "Tutti i timer per questo pin sono in uso"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Tutti i timer utilizzati"
|
msgstr "Tutti i timer utilizzati"
|
||||||
|
|
||||||
@ -582,6 +583,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Impossibile inizializzare l'UART"
|
msgstr "Impossibile inizializzare l'UART"
|
||||||
@ -831,10 +836,6 @@ msgstr "operazione I/O su file chiuso"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "operazione I2C non supportata"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -980,7 +981,7 @@ msgstr "Pin non valido per il canale destro"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1459,6 +1460,10 @@ msgstr "Metodi mancanti readinto() o write() allo stream."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1646,6 +1651,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "baudrate non supportato"
|
msgstr "baudrate non supportato"
|
||||||
|
|
||||||
@ -1756,11 +1762,11 @@ msgstr "abort() chiamato"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "l'indirizzo %08x non è allineato a %d bytes"
|
msgstr "l'indirizzo %08x non è allineato a %d bytes"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "indirizzo fuori limite"
|
msgstr "indirizzo fuori limite"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "gli indirizzi sono vuoti"
|
msgstr "gli indirizzi sono vuoti"
|
||||||
|
|
||||||
@ -1841,10 +1847,6 @@ msgstr "operazione binaria %q non implementata"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "i bit devono essere 7, 8 o 9"
|
msgstr "i bit devono essere 7, 8 o 9"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "i bit devono essere 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
@ -1873,10 +1875,6 @@ msgstr "slice del buffer devono essere della stessa lunghezza"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "buffer troppo piccolo"
|
msgstr "buffer troppo piccolo"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "i buffer devono essere della stessa lunghezza"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1953,7 +1951,7 @@ msgstr "impossibile convertire l'oggetto '%q' implicitamente in %q"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "impossibile convertire NaN in int"
|
msgstr "impossibile convertire NaN in int"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "impossible convertire indirizzo in int"
|
msgstr "impossible convertire indirizzo in int"
|
||||||
|
|
||||||
@ -2313,10 +2311,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "il primo bit deve essere il più significativo (MSB)"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2502,14 +2496,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "periferica I2C invalida"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "periferica SPI invalida"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "argomenti non validi"
|
msgstr "argomenti non validi"
|
||||||
@ -2691,10 +2677,6 @@ msgstr "ereditarietà multipla non supportata"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "deve lanciare un oggetto"
|
msgstr "deve lanciare un oggetto"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "è necessario specificare tutte le sck/mosi/miso"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3529,6 +3511,9 @@ msgstr "zero step"
|
|||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "GPIO16 non supporta pull-up"
|
#~ msgstr "GPIO16 non supporta pull-up"
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "operazione I2C non supportata"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Pin del clock di bit non valido"
|
#~ msgstr "Pin del clock di bit non valido"
|
||||||
|
|
||||||
@ -3636,9 +3621,15 @@ msgstr "zero step"
|
|||||||
#~ msgid "[addrinfo error %d]"
|
#~ msgid "[addrinfo error %d]"
|
||||||
#~ msgstr "[errore addrinfo %d]"
|
#~ msgstr "[errore addrinfo %d]"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "i bit devono essere 8"
|
||||||
|
|
||||||
#~ msgid "buffer too long"
|
#~ msgid "buffer too long"
|
||||||
#~ msgstr "buffer troppo lungo"
|
#~ msgstr "buffer troppo lungo"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "i buffer devono essere della stessa lunghezza"
|
||||||
|
|
||||||
#~ msgid "can query only one param"
|
#~ msgid "can query only one param"
|
||||||
#~ msgstr "è possibile interrogare solo un parametro"
|
#~ msgstr "è possibile interrogare solo un parametro"
|
||||||
|
|
||||||
@ -3669,6 +3660,9 @@ msgstr "zero step"
|
|||||||
#~ msgid "ffi_prep_closure_loc"
|
#~ msgid "ffi_prep_closure_loc"
|
||||||
#~ msgstr "ffi_prep_closure_loc"
|
#~ msgstr "ffi_prep_closure_loc"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "il primo bit deve essere il più significativo (MSB)"
|
||||||
|
|
||||||
#~ msgid "flash location must be below 1MByte"
|
#~ msgid "flash location must be below 1MByte"
|
||||||
#~ msgstr "Locazione della flash deve essere inferiore a 1mb"
|
#~ msgstr "Locazione della flash deve essere inferiore a 1mb"
|
||||||
|
|
||||||
@ -3678,6 +3672,12 @@ msgstr "zero step"
|
|||||||
#~ msgid "impossible baudrate"
|
#~ msgid "impossible baudrate"
|
||||||
#~ msgstr "baudrate impossibile"
|
#~ msgstr "baudrate impossibile"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "periferica I2C invalida"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "periferica SPI invalida"
|
||||||
|
|
||||||
#~ msgid "invalid alarm"
|
#~ msgid "invalid alarm"
|
||||||
#~ msgstr "alarm non valido"
|
#~ msgstr "alarm non valido"
|
||||||
|
|
||||||
@ -3700,6 +3700,9 @@ msgstr "zero step"
|
|||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "allocazione di memoria fallita, allocazione di %d byte per codice nativo"
|
#~ "allocazione di memoria fallita, allocazione di %d byte per codice nativo"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "è necessario specificare tutte le sck/mosi/miso"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "argomenti nominati devono essere stringhe"
|
#~ msgstr "argomenti nominati devono essere stringhe"
|
||||||
|
59
locale/ko.po
59
locale/ko.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2019-05-06 14:22-0700\n"
|
"PO-Revision-Date: 2019-05-06 14:22-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -293,6 +293,7 @@ msgstr ""
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "핀의 모든 타이머가 사용 중입니다"
|
msgstr "핀의 모든 타이머가 사용 중입니다"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -300,7 +301,7 @@ msgstr "핀의 모든 타이머가 사용 중입니다"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "모든 타이머가 사용 중입니다"
|
msgstr "모든 타이머가 사용 중입니다"
|
||||||
|
|
||||||
@ -576,6 +577,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -821,10 +826,6 @@ msgstr ""
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -966,7 +967,7 @@ msgstr "오른쪽 채널 핀이 잘못되었습니다"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1429,6 +1430,10 @@ msgstr ""
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1616,6 +1621,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1725,11 +1731,11 @@ msgstr ""
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1810,10 +1816,6 @@ msgstr ""
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "비트(bits)는 7, 8 또는 9 여야합니다"
|
msgstr "비트(bits)는 7, 8 또는 9 여야합니다"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "비트(bits)는 8이어야합니다"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "bits_per_sample은 8 또는 16이어야합니다."
|
msgstr "bits_per_sample은 8 또는 16이어야합니다."
|
||||||
@ -1839,10 +1841,6 @@ msgstr ""
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1918,7 +1916,7 @@ msgstr ""
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2272,10 +2270,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2460,14 +2454,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "ICT주변 기기가 유효하지 않습니다"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "SPI주변 기기가 유효하지 않습니다"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2644,10 +2630,6 @@ msgstr ""
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3319,3 +3301,12 @@ msgstr ""
|
|||||||
|
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "스캔을 계속할 수 없습니다, 오류 0x%04x"
|
#~ msgstr "스캔을 계속할 수 없습니다, 오류 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "비트(bits)는 8이어야합니다"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "ICT주변 기기가 유효하지 않습니다"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "SPI주변 기기가 유효하지 않습니다"
|
||||||
|
71
locale/nl.po
71
locale/nl.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2020-06-02 19:50+0000\n"
|
"PO-Revision-Date: 2020-06-02 19:50+0000\n"
|
||||||
"Last-Translator: _fonzlate <vooralfred@gmail.com>\n"
|
"Last-Translator: _fonzlate <vooralfred@gmail.com>\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
@ -299,6 +299,7 @@ msgstr "Alle sync event kanalen zijn in gebruik"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Alle timers voor deze pin zijn in gebruik"
|
msgstr "Alle timers voor deze pin zijn in gebruik"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -306,7 +307,7 @@ msgstr "Alle timers voor deze pin zijn in gebruik"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Alle timers zijn in gebruik"
|
msgstr "Alle timers zijn in gebruik"
|
||||||
|
|
||||||
@ -588,6 +589,10 @@ msgstr "Corrupt .mpy bestand"
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr "Corrupt raw code"
|
msgstr "Corrupt raw code"
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Kan UART niet initialiseren"
|
msgstr "Kan UART niet initialiseren"
|
||||||
@ -835,10 +840,6 @@ msgstr "I/O actie op gesloten bestand"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr "I2C Init Fout"
|
msgstr "I2C Init Fout"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "I2C actie niet ondersteund"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -982,7 +983,7 @@ msgstr "Ongeldige pin voor rechter kanaal"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1459,6 +1460,10 @@ msgstr "Stream mist readinto() of write() methode."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr "Geef op zijn minst 1 UART pin op"
|
msgstr "Geef op zijn minst 1 UART pin op"
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr "Temperatuur lees time-out"
|
msgstr "Temperatuur lees time-out"
|
||||||
@ -1655,6 +1660,7 @@ msgstr ""
|
|||||||
"apparaat geweigerd of genegeerd werd."
|
"apparaat geweigerd of genegeerd werd."
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Niet-ondersteunde baudsnelheid"
|
msgstr "Niet-ondersteunde baudsnelheid"
|
||||||
|
|
||||||
@ -1773,11 +1779,11 @@ msgstr "abort() aangeroepen"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "adres %08x is niet afgestemd op %d bytes"
|
msgstr "adres %08x is niet afgestemd op %d bytes"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "adres buiten bereik"
|
msgstr "adres buiten bereik"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "adressen zijn leeg"
|
msgstr "adressen zijn leeg"
|
||||||
|
|
||||||
@ -1858,10 +1864,6 @@ msgstr "binaire op %q niet geïmplementeerd"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "bits moet 7, 8, of 9 zijn"
|
msgstr "bits moet 7, 8, of 9 zijn"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bits moet 8 zijn"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "bits_per_sample moet 8 of 16 zijn"
|
msgstr "bits_per_sample moet 8 of 16 zijn"
|
||||||
@ -1887,10 +1889,6 @@ msgstr "buffer slices moeten van gelijke grootte zijn"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "buffer te klein"
|
msgstr "buffer te klein"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "buffers moeten dezelfde lengte hebben"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr "buttons moeten digitalio.DigitalInOut zijn"
|
msgstr "buttons moeten digitalio.DigitalInOut zijn"
|
||||||
@ -1967,7 +1965,7 @@ msgstr "kan '%q' object niet omzetten naar %q impliciet"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "kan NaN niet omzetten naar int"
|
msgstr "kan NaN niet omzetten naar int"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "kan adres niet omzetten naar int"
|
msgstr "kan adres niet omzetten naar int"
|
||||||
|
|
||||||
@ -2324,10 +2322,6 @@ msgstr "eerst argument moet een ndarray zijn"
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr "eerste argument voor super() moet een type zijn"
|
msgstr "eerste argument voor super() moet een type zijn"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "het eerste bit moet het MSB zijn"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr "De afvlakkingsvolgorde moet ofwel \"C\", ofwel \"F\" zijn"
|
msgstr "De afvlakkingsvolgorde moet ofwel \"C\", ofwel \"F\" zijn"
|
||||||
@ -2513,14 +2507,6 @@ msgstr "interp is gedefinieerd for eendimensionale arrays van gelijke lengte"
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr "interval moet binnen bereik %s-%s vallen"
|
msgstr "interval moet binnen bereik %s-%s vallen"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "onjuist I2C randapparaat"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "onjuist SPI randapparaat"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "ongeldige argumenten"
|
msgstr "ongeldige argumenten"
|
||||||
@ -2700,10 +2686,6 @@ msgstr "meervoudige overerving niet ondersteund"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "moet een object oproepen (raise)"
|
msgstr "moet een object oproepen (raise)"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "sck/mosi/miso moeten alle gespecificeerd worden"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr "voor sleutelfunctie moet een trefwoordargument gebruikt worden"
|
msgstr "voor sleutelfunctie moet een trefwoordargument gebruikt worden"
|
||||||
@ -3352,5 +3334,26 @@ msgstr "y-waarde buiten bereik"
|
|||||||
msgid "zero step"
|
msgid "zero step"
|
||||||
msgstr "nul-stap"
|
msgstr "nul-stap"
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "I2C actie niet ondersteund"
|
||||||
|
|
||||||
#~ msgid "Negative step not supported"
|
#~ msgid "Negative step not supported"
|
||||||
#~ msgstr "Negatieve stappen niet ondersteund"
|
#~ msgstr "Negatieve stappen niet ondersteund"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bits moet 8 zijn"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "buffers moeten dezelfde lengte hebben"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "het eerste bit moet het MSB zijn"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "onjuist I2C randapparaat"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "onjuist SPI randapparaat"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "sck/mosi/miso moeten alle gespecificeerd worden"
|
||||||
|
71
locale/pl.po
71
locale/pl.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
||||||
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
||||||
"Language-Team: pl\n"
|
"Language-Team: pl\n"
|
||||||
@ -292,6 +292,7 @@ msgstr "Wszystkie kanały zdarzeń synchronizacji w użyciu"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Wszystkie timery tej nóżki w użyciu"
|
msgstr "Wszystkie timery tej nóżki w użyciu"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -299,7 +300,7 @@ msgstr "Wszystkie timery tej nóżki w użyciu"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Wszystkie timery w użyciu"
|
msgstr "Wszystkie timery w użyciu"
|
||||||
|
|
||||||
@ -575,6 +576,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Ustawienie UART nie powiodło się"
|
msgstr "Ustawienie UART nie powiodło się"
|
||||||
@ -820,10 +825,6 @@ msgstr "Operacja I/O na zamkniętym pliku"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "Operacja I2C nieobsługiwana"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -967,7 +968,7 @@ msgstr "Zła nóżka dla prawego kanału"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1430,6 +1431,10 @@ msgstr "Strumień nie ma metod readinto() lub write()."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1616,6 +1621,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Zła szybkość transmisji"
|
msgstr "Zła szybkość transmisji"
|
||||||
|
|
||||||
@ -1728,11 +1734,11 @@ msgstr "Wywołano abort()"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "adres %08x nie jest wyrównany do %d bajtów"
|
msgstr "adres %08x nie jest wyrównany do %d bajtów"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "adres poza zakresem"
|
msgstr "adres poza zakresem"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "adres jest pusty"
|
msgstr "adres jest pusty"
|
||||||
|
|
||||||
@ -1813,10 +1819,6 @@ msgstr "brak dwu-argumentowego operatora %q"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "bits musi być 7, 8 lub 9"
|
msgstr "bits musi być 7, 8 lub 9"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bits musi być 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "bits_per_sample musi być 8 lub 16"
|
msgstr "bits_per_sample musi być 8 lub 16"
|
||||||
@ -1842,10 +1844,6 @@ msgstr "fragmenty bufora muszą mieć tę samą długość"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "zbyt mały bufor"
|
msgstr "zbyt mały bufor"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "bufory muszą mieć tę samą długość"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr "buttons musi być digitalio.DigitalInOut"
|
msgstr "buttons musi być digitalio.DigitalInOut"
|
||||||
@ -1921,7 +1919,7 @@ msgstr "nie można automatycznie skonwertować '%q' do '%q'"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "nie można skonwertować NaN do int"
|
msgstr "nie można skonwertować NaN do int"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "nie można skonwertować adresu do int"
|
msgstr "nie można skonwertować adresu do int"
|
||||||
|
|
||||||
@ -2276,10 +2274,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr "pierwszy argument super() musi być typem"
|
msgstr "pierwszy argument super() musi być typem"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "firstbit musi być MSB"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2464,14 +2458,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "złe I2C"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "złe SPI"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "złe arguemnty"
|
msgstr "złe arguemnty"
|
||||||
@ -2648,10 +2634,6 @@ msgstr "wielokrotne dziedzicznie niewspierane"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "wyjątek musi być obiektem"
|
msgstr "wyjątek musi być obiektem"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "sck/mosi/miso muszą być podane"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr "funkcja key musi być podana jako argument nazwany"
|
msgstr "funkcja key musi być podana jako argument nazwany"
|
||||||
@ -3426,6 +3408,9 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "Flash write failed to start, err 0x%04x"
|
#~ msgid "Flash write failed to start, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się rozpocząć zapisu do flash, błąd 0x%04x"
|
#~ msgstr "Nie udało się rozpocząć zapisu do flash, błąd 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "Operacja I2C nieobsługiwana"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Zła nóżka zegara"
|
#~ msgstr "Zła nóżka zegara"
|
||||||
|
|
||||||
@ -3523,9 +3508,15 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "bad GATT role"
|
#~ msgid "bad GATT role"
|
||||||
#~ msgstr "zła rola GATT"
|
#~ msgstr "zła rola GATT"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bits musi być 8"
|
||||||
|
|
||||||
#~ msgid "buf is too small. need %d bytes"
|
#~ msgid "buf is too small. need %d bytes"
|
||||||
#~ msgstr "buf zbyt mały. Wymagane %d bajtów"
|
#~ msgstr "buf zbyt mały. Wymagane %d bajtów"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "bufory muszą mieć tę samą długość"
|
||||||
|
|
||||||
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
||||||
#~ msgstr "byteorder musi być typu ByteOrder (jest %s)"
|
#~ msgstr "byteorder musi być typu ByteOrder (jest %s)"
|
||||||
|
|
||||||
@ -3536,9 +3527,21 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "color buffer must be a buffer or int"
|
#~ msgid "color buffer must be a buffer or int"
|
||||||
#~ msgstr "bufor kolorów musi być typu buffer lub int"
|
#~ msgstr "bufor kolorów musi być typu buffer lub int"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "firstbit musi być MSB"
|
||||||
|
|
||||||
#~ msgid "interval not in range 0.0020 to 10.24"
|
#~ msgid "interval not in range 0.0020 to 10.24"
|
||||||
#~ msgstr "przedział poza zakresem 0.0020 do 10.24"
|
#~ msgstr "przedział poza zakresem 0.0020 do 10.24"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "złe I2C"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "złe SPI"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "sck/mosi/miso muszą być podane"
|
||||||
|
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "nazwa musi być łańcuchem"
|
#~ msgstr "nazwa musi być łańcuchem"
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -294,6 +294,7 @@ msgstr ""
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Todos os temporizadores para este pino estão em uso"
|
msgstr "Todos os temporizadores para este pino estão em uso"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -301,7 +302,7 @@ msgstr "Todos os temporizadores para este pino estão em uso"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Todos os temporizadores em uso"
|
msgstr "Todos os temporizadores em uso"
|
||||||
|
|
||||||
@ -578,6 +579,10 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Não foi possível inicializar o UART"
|
msgstr "Não foi possível inicializar o UART"
|
||||||
@ -826,10 +831,6 @@ msgstr "Operação I/O no arquivo fechado"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "I2C operação não suportada"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -973,7 +974,7 @@ msgstr "Pino inválido para canal direito"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1442,6 +1443,10 @@ msgstr ""
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1628,6 +1633,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Taxa de transmissão não suportada"
|
msgstr "Taxa de transmissão não suportada"
|
||||||
|
|
||||||
@ -1738,11 +1744,11 @@ msgstr "abort() chamado"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "endereço %08x não está alinhado com %d bytes"
|
msgstr "endereço %08x não está alinhado com %d bytes"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1823,10 +1829,6 @@ msgstr ""
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bits devem ser 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
@ -1855,10 +1857,6 @@ msgstr ""
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "buffers devem ser o mesmo tamanho"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1934,7 +1932,7 @@ msgstr ""
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -2289,10 +2287,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "firstbit devem ser MSB"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2477,14 +2471,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "periférico I2C inválido"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "periférico SPI inválido"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "argumentos inválidos"
|
msgstr "argumentos inválidos"
|
||||||
@ -2661,10 +2647,6 @@ msgstr ""
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "deve especificar todos sck/mosi/miso"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3439,6 +3421,9 @@ msgstr "passo zero"
|
|||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "GPIO16 não suporta pull up."
|
#~ msgstr "GPIO16 não suporta pull up."
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "I2C operação não suportada"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Pino de bit clock inválido"
|
#~ msgstr "Pino de bit clock inválido"
|
||||||
|
|
||||||
@ -3512,9 +3497,15 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Use esptool to erase flash and re-upload Python instead"
|
#~ msgid "Use esptool to erase flash and re-upload Python instead"
|
||||||
#~ msgstr "Use o esptool para apagar o flash e recarregar o Python"
|
#~ msgstr "Use o esptool para apagar o flash e recarregar o Python"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bits devem ser 8"
|
||||||
|
|
||||||
#~ msgid "buffer too long"
|
#~ msgid "buffer too long"
|
||||||
#~ msgstr "buffer muito longo"
|
#~ msgstr "buffer muito longo"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "buffers devem ser o mesmo tamanho"
|
||||||
|
|
||||||
#~ msgid "can query only one param"
|
#~ msgid "can query only one param"
|
||||||
#~ msgstr "pode consultar apenas um parâmetro"
|
#~ msgstr "pode consultar apenas um parâmetro"
|
||||||
|
|
||||||
@ -3539,6 +3530,9 @@ msgstr "passo zero"
|
|||||||
#~ msgid "ffi_prep_closure_loc"
|
#~ msgid "ffi_prep_closure_loc"
|
||||||
#~ msgstr "ffi_prep_closure_loc"
|
#~ msgstr "ffi_prep_closure_loc"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "firstbit devem ser MSB"
|
||||||
|
|
||||||
#~ msgid "flash location must be below 1MByte"
|
#~ msgid "flash location must be below 1MByte"
|
||||||
#~ msgstr "o local do flash deve estar abaixo de 1 MByte"
|
#~ msgstr "o local do flash deve estar abaixo de 1 MByte"
|
||||||
|
|
||||||
@ -3548,6 +3542,12 @@ msgstr "passo zero"
|
|||||||
#~ msgid "impossible baudrate"
|
#~ msgid "impossible baudrate"
|
||||||
#~ msgstr "taxa de transmissão impossível"
|
#~ msgstr "taxa de transmissão impossível"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "periférico I2C inválido"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "periférico SPI inválido"
|
||||||
|
|
||||||
#~ msgid "invalid alarm"
|
#~ msgid "invalid alarm"
|
||||||
#~ msgstr "Alarme inválido"
|
#~ msgstr "Alarme inválido"
|
||||||
|
|
||||||
@ -3569,6 +3569,9 @@ msgstr "passo zero"
|
|||||||
#~ msgid "memory allocation failed, allocating %u bytes for native code"
|
#~ msgid "memory allocation failed, allocating %u bytes for native code"
|
||||||
#~ msgstr "alocação de memória falhou, alocando %u bytes para código nativo"
|
#~ msgstr "alocação de memória falhou, alocando %u bytes para código nativo"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "deve especificar todos sck/mosi/miso"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "heap deve ser uma lista"
|
#~ msgstr "heap deve ser uma lista"
|
||||||
|
71
locale/sv.po
71
locale/sv.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2020-06-03 18:59+0000\n"
|
"PO-Revision-Date: 2020-06-03 18:59+0000\n"
|
||||||
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -299,6 +299,7 @@ msgstr "Alla händelsekanaler används"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Alla timers för denna pinne är i bruk"
|
msgstr "Alla timers för denna pinne är i bruk"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -306,7 +307,7 @@ msgstr "Alla timers för denna pinne är i bruk"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Alla timers används"
|
msgstr "Alla timers används"
|
||||||
|
|
||||||
@ -588,6 +589,10 @@ msgstr "Skadad .mpy-fil"
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr "Korrupt rå kod"
|
msgstr "Korrupt rå kod"
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Det gick inte att initiera UART"
|
msgstr "Det gick inte att initiera UART"
|
||||||
@ -833,10 +838,6 @@ msgstr "I/O-operation på stängd fil"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr "I2C init-fel"
|
msgstr "I2C init-fel"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "I2C-åtgärd stöds inte"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -980,7 +981,7 @@ msgstr "Ogiltig pinne för höger kanal"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1455,6 +1456,10 @@ msgstr "Stream saknar readinto() eller write() metod."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr "Ange minst en UART-pinne"
|
msgstr "Ange minst en UART-pinne"
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr "Temperaturavläsning tog för lång tid"
|
msgstr "Temperaturavläsning tog för lång tid"
|
||||||
@ -1651,6 +1656,7 @@ msgstr ""
|
|||||||
"eller ignorerades."
|
"eller ignorerades."
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Baudrate stöd inte"
|
msgstr "Baudrate stöd inte"
|
||||||
|
|
||||||
@ -1766,11 +1772,11 @@ msgstr "abort() anropad"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "adressen %08x är inte justerad till %d byte"
|
msgstr "adressen %08x är inte justerad till %d byte"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "adress utanför gränsen"
|
msgstr "adress utanför gränsen"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "adresserna är tomma"
|
msgstr "adresserna är tomma"
|
||||||
|
|
||||||
@ -1851,10 +1857,6 @@ msgstr "binär op %q är inte implementerad"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "bits måste vara 7, 8 eller 9"
|
msgstr "bits måste vara 7, 8 eller 9"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bits måste vara 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "bits_per_sample måste vara 8 eller 16"
|
msgstr "bits_per_sample måste vara 8 eller 16"
|
||||||
@ -1880,10 +1882,6 @@ msgstr "buffertsegmenten måste vara lika långa"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "buffert för liten"
|
msgstr "buffert för liten"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "buffertar måste vara samma längd"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr "buttons måste vara digitalio.DigitalInOut"
|
msgstr "buttons måste vara digitalio.DigitalInOut"
|
||||||
@ -1959,7 +1957,7 @@ msgstr "kan inte konvertera '%q' objekt implicit till %q"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "kan inte konvertera NaN till int"
|
msgstr "kan inte konvertera NaN till int"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "kan inte konvertera address till int"
|
msgstr "kan inte konvertera address till int"
|
||||||
|
|
||||||
@ -2318,10 +2316,6 @@ msgstr "första argumentet måste vara en ndarray"
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr "första argumentet till super() måste vara typ"
|
msgstr "första argumentet till super() måste vara typ"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "firstbit måste vara MSB"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr "förenklingsordningen måste vara antingen \"C\" eller \"F\""
|
msgstr "förenklingsordningen måste vara antingen \"C\" eller \"F\""
|
||||||
@ -2506,14 +2500,6 @@ msgstr "interp är definierad för 1D-matriser med samma längd"
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr "interval måste vara i intervallet %s-%s"
|
msgstr "interval måste vara i intervallet %s-%s"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "ogiltig I2C-kringutrustning"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "ogiltig SPI-kringutrustning"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "ogiltiga argument"
|
msgstr "ogiltiga argument"
|
||||||
@ -2693,10 +2679,6 @@ msgstr "multipelt arv stöds inte"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "måste ge ett objekt"
|
msgstr "måste ge ett objekt"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "måste ange alla av sck/mosi/miso"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr "måste använda nyckelordsargument för nyckelfunktion"
|
msgstr "måste använda nyckelordsargument för nyckelfunktion"
|
||||||
@ -3345,8 +3327,29 @@ msgstr "y-värde utanför intervall"
|
|||||||
msgid "zero step"
|
msgid "zero step"
|
||||||
msgstr "noll steg"
|
msgstr "noll steg"
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "I2C-åtgärd stöds inte"
|
||||||
|
|
||||||
#~ msgid "Negative step not supported"
|
#~ msgid "Negative step not supported"
|
||||||
#~ msgstr "Negativt step stöds inte"
|
#~ msgstr "Negativt step stöds inte"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bits måste vara 8"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "buffertar måste vara samma längd"
|
||||||
|
|
||||||
#~ msgid "empty %q list"
|
#~ msgid "empty %q list"
|
||||||
#~ msgstr "tom %q-lista"
|
#~ msgstr "tom %q-lista"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "firstbit måste vara MSB"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "ogiltig I2C-kringutrustning"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "ogiltig SPI-kringutrustning"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "måste ange alla av sck/mosi/miso"
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: circuitpython-cn\n"
|
"Project-Id-Version: circuitpython-cn\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-06-01 17:10-0700\n"
|
"POT-Creation-Date: 2020-06-25 11:44-0500\n"
|
||||||
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
||||||
"Last-Translator: hexthat\n"
|
"Last-Translator: hexthat\n"
|
||||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||||
@ -298,6 +298,7 @@ msgstr "Suǒyǒu tóngbù shìjiàn píndào shǐyòng"
|
|||||||
msgid "All timers for this pin are in use"
|
msgid "All timers for this pin are in use"
|
||||||
msgstr "Cǐ yǐn jiǎo de suǒyǒu jìshí qì zhèngzài shǐyòng"
|
msgstr "Cǐ yǐn jiǎo de suǒyǒu jìshí qì zhèngzài shǐyòng"
|
||||||
|
|
||||||
|
#: ports/atmel-samd/common-hal/_pew/PewPew.c
|
||||||
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
|
||||||
@ -305,7 +306,7 @@ msgstr "Cǐ yǐn jiǎo de suǒyǒu jìshí qì zhèngzài shǐyòng"
|
|||||||
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
#: ports/cxd56/common-hal/pulseio/PulseOut.c
|
||||||
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
|
||||||
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
|
||||||
#: shared-bindings/pulseio/PWMOut.c shared-module/_pew/PewPew.c
|
#: shared-bindings/pulseio/PWMOut.c
|
||||||
msgid "All timers in use"
|
msgid "All timers in use"
|
||||||
msgstr "Suǒyǒu jìshí qì shǐyòng"
|
msgstr "Suǒyǒu jìshí qì shǐyòng"
|
||||||
|
|
||||||
@ -583,6 +584,10 @@ msgstr "Fǔbài de .mpy wénjiàn"
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr "Sǔnhuài de yuánshǐ dàimǎ"
|
msgstr "Sǔnhuài de yuánshǐ dàimǎ"
|
||||||
|
|
||||||
|
#: ports/cxd56/common-hal/gnss/GNSS.c
|
||||||
|
msgid "Could not initialize GNSS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Wúfǎ chūshǐhuà UART"
|
msgstr "Wúfǎ chūshǐhuà UART"
|
||||||
@ -828,10 +833,6 @@ msgstr "Wénjiàn shàng de I/ O cāozuò"
|
|||||||
msgid "I2C Init Error"
|
msgid "I2C Init Error"
|
||||||
msgstr "I2C chūshǐhuà cuòwù"
|
msgstr "I2C chūshǐhuà cuòwù"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "I2C operation not supported"
|
|
||||||
msgstr "I2C cāozuò bù zhīchí"
|
|
||||||
|
|
||||||
#: shared-bindings/aesio/aes.c
|
#: shared-bindings/aesio/aes.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "IV must be %d bytes long"
|
msgid "IV must be %d bytes long"
|
||||||
@ -975,7 +976,7 @@ msgstr "Yòuxián tōngdào yǐn jiǎo wúxiào"
|
|||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
#: ports/atmel-samd/common-hal/busio/SPI.c
|
#: ports/atmel-samd/common-hal/busio/SPI.c
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
|
#: ports/atmel-samd/common-hal/i2cperipheral/I2CPeripheral.c
|
||||||
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
|
||||||
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
#: ports/cxd56/common-hal/busio/UART.c ports/mimxrt10xx/common-hal/busio/I2C.c
|
||||||
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
#: ports/mimxrt10xx/common-hal/busio/SPI.c
|
||||||
@ -1444,6 +1445,10 @@ msgstr "Liú quēshǎo readinto() huò write() fāngfǎ."
|
|||||||
msgid "Supply at least one UART pin"
|
msgid "Supply at least one UART pin"
|
||||||
msgstr "Dìngyì zhìshǎo yīgè UART yǐn jiǎo"
|
msgstr "Dìngyì zhìshǎo yīgè UART yǐn jiǎo"
|
||||||
|
|
||||||
|
#: shared-bindings/gnss/GNSS.c
|
||||||
|
msgid "System entry must be gnss.SatelliteSystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/stm/common-hal/microcontroller/Processor.c
|
#: ports/stm/common-hal/microcontroller/Processor.c
|
||||||
msgid "Temperature read timed out"
|
msgid "Temperature read timed out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -1639,6 +1644,7 @@ msgstr ""
|
|||||||
"huò hūlüè."
|
"huò hūlüè."
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
|
||||||
|
#: ports/stm/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Bù zhīchí de baudrate"
|
msgstr "Bù zhīchí de baudrate"
|
||||||
|
|
||||||
@ -1753,11 +1759,11 @@ msgstr "zhōngzhǐ () diàoyòng"
|
|||||||
msgid "address %08x is not aligned to %d bytes"
|
msgid "address %08x is not aligned to %d bytes"
|
||||||
msgstr "wèi zhǐ %08x wèi yǔ %d wèi yuán zǔ duìqí"
|
msgstr "wèi zhǐ %08x wèi yǔ %d wèi yuán zǔ duìqí"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "address out of bounds"
|
msgid "address out of bounds"
|
||||||
msgstr "dìzhǐ chāochū biānjiè"
|
msgstr "dìzhǐ chāochū biānjiè"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "addresses is empty"
|
msgid "addresses is empty"
|
||||||
msgstr "dìzhǐ wèi kōng"
|
msgstr "dìzhǐ wèi kōng"
|
||||||
|
|
||||||
@ -1838,10 +1844,6 @@ msgstr "èrjìnzhì bǎn qián bǎn %q wèi zhíxíng"
|
|||||||
msgid "bits must be 7, 8 or 9"
|
msgid "bits must be 7, 8 or 9"
|
||||||
msgstr "bǐtè bìxū shì 7,8 huò 9"
|
msgstr "bǐtè bìxū shì 7,8 huò 9"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "bits must be 8"
|
|
||||||
msgstr "bǐtè bìxū shì 8"
|
|
||||||
|
|
||||||
#: shared-bindings/audiomixer/Mixer.c
|
#: shared-bindings/audiomixer/Mixer.c
|
||||||
msgid "bits_per_sample must be 8 or 16"
|
msgid "bits_per_sample must be 8 or 16"
|
||||||
msgstr "měi jiàn yàngběn bìxū wèi 8 huò 16"
|
msgstr "měi jiàn yàngběn bìxū wèi 8 huò 16"
|
||||||
@ -1867,10 +1869,6 @@ msgstr "huǎnchōng qū qiēpiàn bìxū chángdù xiāngděng"
|
|||||||
msgid "buffer too small"
|
msgid "buffer too small"
|
||||||
msgstr "huǎnchōng qū tài xiǎo"
|
msgstr "huǎnchōng qū tài xiǎo"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "buffers must be the same length"
|
|
||||||
msgstr "huǎnchōng qū bìxū shì chángdù xiāngtóng"
|
|
||||||
|
|
||||||
#: shared-bindings/_pew/PewPew.c
|
#: shared-bindings/_pew/PewPew.c
|
||||||
msgid "buttons must be digitalio.DigitalInOut"
|
msgid "buttons must be digitalio.DigitalInOut"
|
||||||
msgstr "ànniǔ bìxū shì digitalio.DigitalInOut"
|
msgstr "ànniǔ bìxū shì digitalio.DigitalInOut"
|
||||||
@ -1946,7 +1944,7 @@ msgstr "wúfǎ jiāng '%q' duìxiàng zhuǎnhuàn wèi %q yǐn hán"
|
|||||||
msgid "can't convert NaN to int"
|
msgid "can't convert NaN to int"
|
||||||
msgstr "wúfǎ jiāng dǎoháng zhuǎnhuàn wèi int"
|
msgstr "wúfǎ jiāng dǎoháng zhuǎnhuàn wèi int"
|
||||||
|
|
||||||
#: shared-bindings/i2cslave/I2CSlave.c
|
#: shared-bindings/i2cperipheral/I2CPeripheral.c
|
||||||
msgid "can't convert address to int"
|
msgid "can't convert address to int"
|
||||||
msgstr "wúfǎ jiāng dìzhǐ zhuǎnhuàn wèi int"
|
msgstr "wúfǎ jiāng dìzhǐ zhuǎnhuàn wèi int"
|
||||||
|
|
||||||
@ -2304,10 +2302,6 @@ msgstr ""
|
|||||||
msgid "first argument to super() must be type"
|
msgid "first argument to super() must be type"
|
||||||
msgstr "chāojí () de dì yī gè cānshù bìxū shì lèixíng"
|
msgstr "chāojí () de dì yī gè cānshù bìxū shì lèixíng"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "firstbit must be MSB"
|
|
||||||
msgstr "dì yī wèi bìxū shì MSB"
|
|
||||||
|
|
||||||
#: extmod/ulab/code/ndarray.c
|
#: extmod/ulab/code/ndarray.c
|
||||||
msgid "flattening order must be either 'C', or 'F'"
|
msgid "flattening order must be either 'C', or 'F'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2492,14 +2486,6 @@ msgstr ""
|
|||||||
msgid "interval must be in range %s-%s"
|
msgid "interval must be in range %s-%s"
|
||||||
msgstr "Jiàngé bìxū zài %s-%s fànwéi nèi"
|
msgstr "Jiàngé bìxū zài %s-%s fànwéi nèi"
|
||||||
|
|
||||||
#: extmod/machine_i2c.c
|
|
||||||
msgid "invalid I2C peripheral"
|
|
||||||
msgstr "wúxiào de I2C wàiwéi qì"
|
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "invalid SPI peripheral"
|
|
||||||
msgstr "wúxiào de SPI wàiwéi qì"
|
|
||||||
|
|
||||||
#: lib/netutils/netutils.c
|
#: lib/netutils/netutils.c
|
||||||
msgid "invalid arguments"
|
msgid "invalid arguments"
|
||||||
msgstr "wúxiào de cānshù"
|
msgstr "wúxiào de cānshù"
|
||||||
@ -2677,10 +2663,6 @@ msgstr "bù zhīchí duō gè jìchéng"
|
|||||||
msgid "must raise an object"
|
msgid "must raise an object"
|
||||||
msgstr "bìxū tíchū duìxiàng"
|
msgstr "bìxū tíchū duìxiàng"
|
||||||
|
|
||||||
#: extmod/machine_spi.c
|
|
||||||
msgid "must specify all of sck/mosi/miso"
|
|
||||||
msgstr "bìxū zhǐdìng suǒyǒu sck/mosi/misco"
|
|
||||||
|
|
||||||
#: py/modbuiltins.c
|
#: py/modbuiltins.c
|
||||||
msgid "must use keyword argument for key function"
|
msgid "must use keyword argument for key function"
|
||||||
msgstr "bìxū shǐyòng guānjiàn cí cānshù"
|
msgstr "bìxū shǐyòng guānjiàn cí cānshù"
|
||||||
@ -3485,6 +3467,9 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Flash write failed to start, err 0x%04x"
|
#~ msgid "Flash write failed to start, err 0x%04x"
|
||||||
#~ msgstr "Flash xiě rù shībài, err 0x%04x"
|
#~ msgstr "Flash xiě rù shībài, err 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "I2C operation not supported"
|
||||||
|
#~ msgstr "I2C cāozuò bù zhīchí"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Wúxiào de wèi shízhōng yǐn jiǎo"
|
#~ msgstr "Wúxiào de wèi shízhōng yǐn jiǎo"
|
||||||
|
|
||||||
@ -3605,9 +3590,15 @@ msgstr "líng bù"
|
|||||||
#~ msgid "bad GATT role"
|
#~ msgid "bad GATT role"
|
||||||
#~ msgstr "zǒng xiédìng de bùliáng juésè"
|
#~ msgstr "zǒng xiédìng de bùliáng juésè"
|
||||||
|
|
||||||
|
#~ msgid "bits must be 8"
|
||||||
|
#~ msgstr "bǐtè bìxū shì 8"
|
||||||
|
|
||||||
#~ msgid "buf is too small. need %d bytes"
|
#~ msgid "buf is too small. need %d bytes"
|
||||||
#~ msgstr "huǎnchōng tài xiǎo. Xūyào%d zì jié"
|
#~ msgstr "huǎnchōng tài xiǎo. Xūyào%d zì jié"
|
||||||
|
|
||||||
|
#~ msgid "buffers must be the same length"
|
||||||
|
#~ msgstr "huǎnchōng qū bìxū shì chángdù xiāngtóng"
|
||||||
|
|
||||||
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
#~ msgid "byteorder is not an instance of ByteOrder (got a %s)"
|
||||||
#~ msgstr "zì jié bùshì zì jié xù shílì (yǒu %s)"
|
#~ msgstr "zì jié bùshì zì jié xù shílì (yǒu %s)"
|
||||||
|
|
||||||
@ -3620,9 +3611,21 @@ msgstr "líng bù"
|
|||||||
#~ msgid "expected a DigitalInOut"
|
#~ msgid "expected a DigitalInOut"
|
||||||
#~ msgstr "qídài de DigitalInOut"
|
#~ msgstr "qídài de DigitalInOut"
|
||||||
|
|
||||||
|
#~ msgid "firstbit must be MSB"
|
||||||
|
#~ msgstr "dì yī wèi bìxū shì MSB"
|
||||||
|
|
||||||
#~ msgid "interval not in range 0.0020 to 10.24"
|
#~ msgid "interval not in range 0.0020 to 10.24"
|
||||||
#~ msgstr "jùlí 0.0020 Zhì 10.24 Zhī jiān de jiàngé shíjiān"
|
#~ msgstr "jùlí 0.0020 Zhì 10.24 Zhī jiān de jiàngé shíjiān"
|
||||||
|
|
||||||
|
#~ msgid "invalid I2C peripheral"
|
||||||
|
#~ msgstr "wúxiào de I2C wàiwéi qì"
|
||||||
|
|
||||||
|
#~ msgid "invalid SPI peripheral"
|
||||||
|
#~ msgstr "wúxiào de SPI wàiwéi qì"
|
||||||
|
|
||||||
|
#~ msgid "must specify all of sck/mosi/miso"
|
||||||
|
#~ msgstr "bìxū zhǐdìng suǒyǒu sck/mosi/misco"
|
||||||
|
|
||||||
#~ msgid "name must be a string"
|
#~ msgid "name must be a string"
|
||||||
#~ msgstr "míngchēng bìxū shì yīgè zìfú chuàn"
|
#~ msgstr "míngchēng bìxū shì yīgè zìfú chuàn"
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ EXTERNAL_FLASH_DEVICES = "MX25L51245G"
|
|||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
|
||||||
CFLAGS_INLINE_LIMIT = 60
|
CFLAGS_INLINE_LIMIT = 60
|
||||||
|
@ -13,5 +13,5 @@ LONGINT_IMPL = MPZ
|
|||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
@ -14,7 +14,7 @@ LONGINT_IMPL = MPZ
|
|||||||
# Make room for frozen libs.
|
# Make room for frozen libs.
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
CFLAGS_INLINE_LIMIT = 55
|
CFLAGS_INLINE_LIMIT = 55
|
||||||
|
@ -15,7 +15,7 @@ LONGINT_IMPL = NONE
|
|||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_PIXELBUF = 1
|
CIRCUITPY_PIXELBUF = 1
|
||||||
CIRCUITPY_ROTARYIO = 0
|
CIRCUITPY_ROTARYIO = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
|
@ -14,7 +14,7 @@ EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
|
|||||||
LONGINT_IMPL = NONE
|
LONGINT_IMPL = NONE
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_PIXELBUF = 0
|
CIRCUITPY_PIXELBUF = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
# So not all of displayio, sorry!
|
# So not all of displayio, sorry!
|
||||||
|
@ -13,7 +13,7 @@ LONGINT_IMPL = MPZ
|
|||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
|
||||||
CFLAGS_INLINE_LIMIT = 60
|
CFLAGS_INLINE_LIMIT = 60
|
||||||
|
@ -15,7 +15,7 @@ LONGINT_IMPL = MPZ
|
|||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
CFLAGS_INLINE_LIMIT = 50
|
CFLAGS_INLINE_LIMIT = 50
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ LONGINT_IMPL = MPZ
|
|||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
# supersized, not ultra-supersized
|
# supersized, not ultra-supersized
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ CIRCUITPY_AUDIOBUSIO = 0
|
|||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_ROTARYIO = 0
|
CIRCUITPY_ROTARYIO = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
CIRCUITPY_COUNTIO = 0
|
CIRCUITPY_COUNTIO = 0
|
||||||
|
@ -15,7 +15,7 @@ CIRCUITPY_BITBANG_APA102 = 1
|
|||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
# too itsy bitsy for all of displayio
|
# too itsy bitsy for all of displayio
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
@ -12,7 +12,7 @@ EXTERNAL_FLASH_DEVICES = "S25FL216K, GD25Q16C"
|
|||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
|
||||||
CFLAGS_INLINE_LIMIT = 60
|
CFLAGS_INLINE_LIMIT = 60
|
||||||
|
@ -16,7 +16,7 @@ CIRCUITPY_ANALOGIO = 0
|
|||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||||
CIRCUITPY_NETWORK = 0
|
CIRCUITPY_NETWORK = 0
|
||||||
CIRCUITPY_PIXELBUF = 0
|
CIRCUITPY_PIXELBUF = 0
|
||||||
|
@ -9,7 +9,7 @@ CHIP_FAMILY = samd21
|
|||||||
INTERNAL_FLASH_FILESYSTEM = 1
|
INTERNAL_FLASH_FILESYSTEM = 1
|
||||||
LONGINT_IMPL = NONE
|
LONGINT_IMPL = NONE
|
||||||
CIRCUITPY_FULL_BUILD = 0
|
CIRCUITPY_FULL_BUILD = 0
|
||||||
CIRCUITPY_I2CSLAVE = 1
|
CIRCUITPY_I2CPERIPHERAL = 1
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
@ -13,7 +13,7 @@ LONGINT_IMPL = MPZ
|
|||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
|
||||||
CFLAGS_INLINE_LIMIT = 60
|
CFLAGS_INLINE_LIMIT = 60
|
||||||
|
@ -12,7 +12,7 @@ EXTERNAL_FLASH_DEVICES = "W25Q32FV"
|
|||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
|
||||||
CFLAGS_INLINE_LIMIT = 60
|
CFLAGS_INLINE_LIMIT = 60
|
||||||
|
@ -16,7 +16,7 @@ CIRCUITPY_BITBANG_APA102 = 1
|
|||||||
|
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
CIRCUITPY_VECTORIO = 0
|
CIRCUITPY_VECTORIO = 0
|
||||||
|
|
||||||
|
@ -15,6 +15,6 @@ CIRCUITPY_BITBANGIO = 0
|
|||||||
CIRCUITPY_COUNTIO = 0
|
CIRCUITPY_COUNTIO = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
@ -21,7 +21,7 @@ CIRCUITPY_DISPLAYIO = 1
|
|||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||||
CIRCUITPY_PIXELBUF = 0
|
CIRCUITPY_PIXELBUF = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
|
@ -19,12 +19,11 @@ CIRCUITPY_AUDIOIO = 1
|
|||||||
CIRCUITPY_BITBANGIO = 0
|
CIRCUITPY_BITBANGIO = 0
|
||||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_BLEIO = 0
|
CIRCUITPY_BLEIO = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_NETWORK = 0
|
CIRCUITPY_NETWORK = 0
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
CIRCUITPY_RGBMATRIX = 0
|
CIRCUITPY_RGBMATRIX = 0
|
||||||
|
@ -22,7 +22,7 @@ CIRCUITPY_BLEIO = 0
|
|||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_NETWORK = 0
|
CIRCUITPY_NETWORK = 0
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
CIRCUITPY_RGBMATRIX = 0
|
CIRCUITPY_RGBMATRIX = 0
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "shared-bindings/i2cslave/I2CSlave.h"
|
#include "shared-bindings/i2cperipheral/I2CPeripheral.h"
|
||||||
#include "common-hal/busio/I2C.h"
|
#include "common-hal/busio/I2C.h"
|
||||||
|
|
||||||
#include "lib/utils/interrupt_char.h"
|
#include "lib/utils/interrupt_char.h"
|
||||||
@ -35,7 +35,7 @@
|
|||||||
#include "hal/include/hal_gpio.h"
|
#include "hal/include/hal_gpio.h"
|
||||||
#include "peripherals/samd/sercom.h"
|
#include "peripherals/samd/sercom.h"
|
||||||
|
|
||||||
void common_hal_i2cslave_i2c_slave_construct(i2cslave_i2c_slave_obj_t *self,
|
void common_hal_i2cperipheral_i2c_peripheral_construct(i2cperipheral_i2c_peripheral_obj_t *self,
|
||||||
const mcu_pin_obj_t *scl, const mcu_pin_obj_t *sda,
|
const mcu_pin_obj_t *scl, const mcu_pin_obj_t *sda,
|
||||||
uint8_t *addresses, unsigned int num_addresses, bool smbus) {
|
uint8_t *addresses, unsigned int num_addresses, bool smbus) {
|
||||||
uint8_t sercom_index;
|
uint8_t sercom_index;
|
||||||
@ -87,19 +87,19 @@ void common_hal_i2cslave_i2c_slave_construct(i2cslave_i2c_slave_obj_t *self,
|
|||||||
|
|
||||||
if (smbus) {
|
if (smbus) {
|
||||||
sercom->I2CS.CTRLA.bit.LOWTOUTEN = 1; // Errata 12003
|
sercom->I2CS.CTRLA.bit.LOWTOUTEN = 1; // Errata 12003
|
||||||
sercom->I2CS.CTRLA.bit.SEXTTOEN = 1; // Slave SCL Low Extend/Cumulative Time-Out 25ms
|
sercom->I2CS.CTRLA.bit.SEXTTOEN = 1; // SCL Low Extend/Cumulative Time-Out 25ms
|
||||||
}
|
}
|
||||||
sercom->I2CS.CTRLA.bit.SCLSM = 0; // Clock stretch before ack
|
sercom->I2CS.CTRLA.bit.SCLSM = 0; // Clock stretch before ack
|
||||||
sercom->I2CS.CTRLA.bit.MODE = 0x04; // Slave mode
|
sercom->I2CS.CTRLA.bit.MODE = 0x04; // Device mode
|
||||||
sercom->I2CS.CTRLA.bit.ENABLE = 1;
|
sercom->I2CS.CTRLA.bit.ENABLE = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool common_hal_i2cslave_i2c_slave_deinited(i2cslave_i2c_slave_obj_t *self) {
|
bool common_hal_i2cperipheral_i2c_peripheral_deinited(i2cperipheral_i2c_peripheral_obj_t *self) {
|
||||||
return self->sda_pin == NO_PIN;
|
return self->sda_pin == NO_PIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_i2cslave_i2c_slave_deinit(i2cslave_i2c_slave_obj_t *self) {
|
void common_hal_i2cperipheral_i2c_peripheral_deinit(i2cperipheral_i2c_peripheral_obj_t *self) {
|
||||||
if (common_hal_i2cslave_i2c_slave_deinited(self)) {
|
if (common_hal_i2cperipheral_i2c_peripheral_deinited(self)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ void common_hal_i2cslave_i2c_slave_deinit(i2cslave_i2c_slave_obj_t *self) {
|
|||||||
self->scl_pin = NO_PIN;
|
self->scl_pin = NO_PIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int i2c_slave_check_error(i2cslave_i2c_slave_obj_t *self, bool raise) {
|
static int i2c_peripheral_check_error(i2cperipheral_i2c_peripheral_obj_t *self, bool raise) {
|
||||||
if (!self->sercom->I2CS.INTFLAG.bit.ERROR) {
|
if (!self->sercom->I2CS.INTFLAG.bit.ERROR) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -130,9 +130,9 @@ static int i2c_slave_check_error(i2cslave_i2c_slave_obj_t *self, bool raise) {
|
|||||||
return -err;
|
return -err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int common_hal_i2cslave_i2c_slave_is_addressed(i2cslave_i2c_slave_obj_t *self, uint8_t *address, bool *is_read, bool *is_restart)
|
int common_hal_i2cperipheral_i2c_peripheral_is_addressed(i2cperipheral_i2c_peripheral_obj_t *self, uint8_t *address, bool *is_read, bool *is_restart)
|
||||||
{
|
{
|
||||||
int err = i2c_slave_check_error(self, false);
|
int err = i2c_peripheral_check_error(self, false);
|
||||||
if (err) {
|
if (err) {
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -149,22 +149,22 @@ int common_hal_i2cslave_i2c_slave_is_addressed(i2cslave_i2c_slave_obj_t *self, u
|
|||||||
|
|
||||||
for (unsigned int i = 0; i < self->num_addresses; i++) {
|
for (unsigned int i = 0; i < self->num_addresses; i++) {
|
||||||
if (*address == self->addresses[i]) {
|
if (*address == self->addresses[i]) {
|
||||||
common_hal_i2cslave_i2c_slave_ack(self, true);
|
common_hal_i2cperipheral_i2c_peripheral_ack(self, true);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This should clear AMATCH, but it doesn't...
|
// This should clear AMATCH, but it doesn't...
|
||||||
common_hal_i2cslave_i2c_slave_ack(self, false);
|
common_hal_i2cperipheral_i2c_peripheral_ack(self, false);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int common_hal_i2cslave_i2c_slave_read_byte(i2cslave_i2c_slave_obj_t *self, uint8_t *data) {
|
int common_hal_i2cperipheral_i2c_peripheral_read_byte(i2cperipheral_i2c_peripheral_obj_t *self, uint8_t *data) {
|
||||||
for (int t = 0; t < 100 && !self->sercom->I2CS.INTFLAG.reg; t++) {
|
for (int t = 0; t < 100 && !self->sercom->I2CS.INTFLAG.reg; t++) {
|
||||||
mp_hal_delay_us(10);
|
mp_hal_delay_us(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_slave_check_error(self, true);
|
i2c_peripheral_check_error(self, true);
|
||||||
|
|
||||||
if (!self->sercom->I2CS.INTFLAG.bit.DRDY ||
|
if (!self->sercom->I2CS.INTFLAG.bit.DRDY ||
|
||||||
self->sercom->I2CS.INTFLAG.bit.PREC ||
|
self->sercom->I2CS.INTFLAG.bit.PREC ||
|
||||||
@ -176,12 +176,12 @@ int common_hal_i2cslave_i2c_slave_read_byte(i2cslave_i2c_slave_obj_t *self, uint
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int common_hal_i2cslave_i2c_slave_write_byte(i2cslave_i2c_slave_obj_t *self, uint8_t data) {
|
int common_hal_i2cperipheral_i2c_peripheral_write_byte(i2cperipheral_i2c_peripheral_obj_t *self, uint8_t data) {
|
||||||
for (int t = 0; !self->sercom->I2CS.INTFLAG.reg && t < 100; t++) {
|
for (int t = 0; !self->sercom->I2CS.INTFLAG.reg && t < 100; t++) {
|
||||||
mp_hal_delay_us(10);
|
mp_hal_delay_us(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_slave_check_error(self, true);
|
i2c_peripheral_check_error(self, true);
|
||||||
|
|
||||||
if (self->sercom->I2CS.INTFLAG.bit.PREC) {
|
if (self->sercom->I2CS.INTFLAG.bit.PREC) {
|
||||||
return 0;
|
return 0;
|
||||||
@ -203,12 +203,12 @@ int common_hal_i2cslave_i2c_slave_write_byte(i2cslave_i2c_slave_obj_t *self, uin
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_i2cslave_i2c_slave_ack(i2cslave_i2c_slave_obj_t *self, bool ack) {
|
void common_hal_i2cperipheral_i2c_peripheral_ack(i2cperipheral_i2c_peripheral_obj_t *self, bool ack) {
|
||||||
self->sercom->I2CS.CTRLB.bit.ACKACT = !ack;
|
self->sercom->I2CS.CTRLB.bit.ACKACT = !ack;
|
||||||
self->sercom->I2CS.CTRLB.bit.CMD = 0x03;
|
self->sercom->I2CS.CTRLB.bit.CMD = 0x03;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_i2cslave_i2c_slave_close(i2cslave_i2c_slave_obj_t *self) {
|
void common_hal_i2cperipheral_i2c_peripheral_close(i2cperipheral_i2c_peripheral_obj_t *self) {
|
||||||
for (int t = 0; !self->sercom->I2CS.INTFLAG.reg && t < 100; t++) {
|
for (int t = 0; !self->sercom->I2CS.INTFLAG.reg && t < 100; t++) {
|
||||||
mp_hal_delay_us(10);
|
mp_hal_delay_us(10);
|
||||||
}
|
}
|
||||||
@ -218,7 +218,7 @@ void common_hal_i2cslave_i2c_slave_close(i2cslave_i2c_slave_obj_t *self) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!self->sercom->I2CS.STATUS.bit.DIR) {
|
if (!self->sercom->I2CS.STATUS.bit.DIR) {
|
||||||
common_hal_i2cslave_i2c_slave_ack(self, false);
|
common_hal_i2cperipheral_i2c_peripheral_ack(self, false);
|
||||||
} else {
|
} else {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (self->sercom->I2CS.INTFLAG.reg == SERCOM_I2CS_INTFLAG_DRDY) {
|
while (self->sercom->I2CS.INTFLAG.reg == SERCOM_I2CS_INTFLAG_DRDY) {
|
||||||
@ -246,7 +246,7 @@ void common_hal_i2cslave_i2c_slave_close(i2cslave_i2c_slave_obj_t *self) {
|
|||||||
|
|
||||||
if (self->sercom->I2CS.STATUS.bit.CLKHOLD) {
|
if (self->sercom->I2CS.STATUS.bit.CLKHOLD) {
|
||||||
// Unable to release the clock.
|
// Unable to release the clock.
|
||||||
// The slave might have to be re-initialized to get unstuck.
|
// The device might have to be re-initialized to get unstuck.
|
||||||
mp_raise_OSError(MP_EIO);
|
mp_raise_OSError(MP_EIO);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -24,8 +24,8 @@
|
|||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_I2C_SLAVE_H
|
#ifndef MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_I2C_PERIPHERAL_H
|
||||||
#define MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_I2C_SLAVE_H
|
#define MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_I2C_PERIPHERAL_H
|
||||||
|
|
||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
@ -40,6 +40,6 @@ typedef struct {
|
|||||||
uint8_t scl_pin;
|
uint8_t scl_pin;
|
||||||
uint8_t sda_pin;
|
uint8_t sda_pin;
|
||||||
bool writing;
|
bool writing;
|
||||||
} i2cslave_i2c_slave_obj_t;
|
} i2cperipheral_i2c_peripheral_obj_t;
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_I2C_SLAVE_H
|
#endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_BUSIO_I2C_PERIPHERAL_H
|
1
ports/atmel-samd/common-hal/i2cperipheral/__init__.c
Normal file
1
ports/atmel-samd/common-hal/i2cperipheral/__init__.c
Normal file
@ -0,0 +1 @@
|
|||||||
|
// No i2cperipheral module functions.
|
@ -1 +0,0 @@
|
|||||||
// No i2cslave module functions.
|
|
@ -14,7 +14,7 @@ CIRCUITPY_DISPLAYIO = 0
|
|||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_GAMEPAD = 0
|
CIRCUITPY_GAMEPAD = 0
|
||||||
CIRCUITPY_GNSS = 1
|
CIRCUITPY_GNSS = 1
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||||
CIRCUITPY_NVM = 0
|
CIRCUITPY_NVM = 0
|
||||||
CIRCUITPY_ROTARYIO = 0
|
CIRCUITPY_ROTARYIO = 0
|
||||||
|
@ -22,7 +22,7 @@ CIRCUITPY_DIGITALIO = 1
|
|||||||
CIRCUITPY_BUSIO = 0
|
CIRCUITPY_BUSIO = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_MICROCONTROLLER = 1
|
CIRCUITPY_MICROCONTROLLER = 1
|
||||||
CIRCUITPY_NVM = 0
|
CIRCUITPY_NVM = 0
|
||||||
CIRCUITPY_PULSEIO = 0
|
CIRCUITPY_PULSEIO = 0
|
||||||
|
@ -20,7 +20,7 @@ CIRCUITPY_BOARD = 0
|
|||||||
CIRCUITPY_BUSIO = 0
|
CIRCUITPY_BUSIO = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_NVM = 0
|
CIRCUITPY_NVM = 0
|
||||||
CIRCUITPY_PULSEIO = 0
|
CIRCUITPY_PULSEIO = 0
|
||||||
CIRCUITPY_ROTARYIO = 0
|
CIRCUITPY_ROTARYIO = 0
|
||||||
|
@ -22,7 +22,7 @@ INTERNAL_FLASH_FILESYSTEM = 1
|
|||||||
CIRCUITPY_AUDIOIO = 0
|
CIRCUITPY_AUDIOIO = 0
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_NVM = 0
|
CIRCUITPY_NVM = 0
|
||||||
CIRCUITPY_ROTARYIO = 0
|
CIRCUITPY_ROTARYIO = 0
|
||||||
CIRCUITPY_COUNTIO = 0
|
CIRCUITPY_COUNTIO = 0
|
||||||
|
@ -14,7 +14,7 @@ CIRCUITPY_COUNTIO = 0
|
|||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
CIRCUITPY_FRAMEBUFFERIO = 0
|
CIRCUITPY_FRAMEBUFFERIO = 0
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||||
CIRCUITPY_NVM = 0
|
CIRCUITPY_NVM = 0
|
||||||
CIRCUITPY_PIXELBUF = 0
|
CIRCUITPY_PIXELBUF = 0
|
||||||
|
@ -25,8 +25,8 @@ CIRCUITPY_AUDIOPWMIO ?= 1
|
|||||||
|
|
||||||
CIRCUITPY_BLEIO ?= 1
|
CIRCUITPY_BLEIO ?= 1
|
||||||
|
|
||||||
# No I2CSlave implementation
|
# No I2CPeripheral implementation
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CPERIPHERAL = 0
|
||||||
|
|
||||||
CIRCUITPY_RTC ?= 1
|
CIRCUITPY_RTC ?= 1
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ ifeq ($(MCU_SERIES),F4)
|
|||||||
CIRCUITPY_AUDIOIO ?= 0
|
CIRCUITPY_AUDIOIO ?= 0
|
||||||
CIRCUITPY_COUNTIO ?= 0
|
CIRCUITPY_COUNTIO ?= 0
|
||||||
CIRCUITPY_FREQUENCYIO ?= 0
|
CIRCUITPY_FREQUENCYIO ?= 0
|
||||||
CIRCUITPY_I2CSLAVE ?= 0
|
CIRCUITPY_I2CPERIPHERAL ?= 0
|
||||||
CIRCUITPY_NVM ?= 0
|
CIRCUITPY_NVM ?= 0
|
||||||
CIRCUITPY_ROTARYIO ?= 0
|
CIRCUITPY_ROTARYIO ?= 0
|
||||||
CIRCUITPY_RTC ?= 0
|
CIRCUITPY_RTC ?= 0
|
||||||
@ -29,7 +29,7 @@ ifeq ($(MCU_SERIES),H7)
|
|||||||
CIRCUITPY_AUDIOIO ?= 0
|
CIRCUITPY_AUDIOIO ?= 0
|
||||||
CIRCUITPY_COUNTIO ?= 0
|
CIRCUITPY_COUNTIO ?= 0
|
||||||
CIRCUITPY_FREQUENCYIO ?= 0
|
CIRCUITPY_FREQUENCYIO ?= 0
|
||||||
CIRCUITPY_I2CSLAVE ?= 0
|
CIRCUITPY_I2CPERIPHERAL ?= 0
|
||||||
CIRCUITPY_NEOPIXEL_WRITE ?= 0
|
CIRCUITPY_NEOPIXEL_WRITE ?= 0
|
||||||
CIRCUITPY_NVM ?= 0
|
CIRCUITPY_NVM ?= 0
|
||||||
CIRCUITPY_PULSEIO ?= 0
|
CIRCUITPY_PULSEIO ?= 0
|
||||||
@ -46,7 +46,7 @@ ifeq ($(MCU_SERIES),F7)
|
|||||||
CIRCUITPY_AUDIOIO ?= 0
|
CIRCUITPY_AUDIOIO ?= 0
|
||||||
CIRCUITPY_COUNTIO ?= 0
|
CIRCUITPY_COUNTIO ?= 0
|
||||||
CIRCUITPY_FREQUENCYIO ?= 0
|
CIRCUITPY_FREQUENCYIO ?= 0
|
||||||
CIRCUITPY_I2CSLAVE ?= 0
|
CIRCUITPY_I2CPERIPHERAL ?= 0
|
||||||
CIRCUITPY_NEOPIXEL_WRITE ?= 0
|
CIRCUITPY_NEOPIXEL_WRITE ?= 0
|
||||||
CIRCUITPY_NVM ?= 0
|
CIRCUITPY_NVM ?= 0
|
||||||
CIRCUITPY_ROTARYIO ?= 0
|
CIRCUITPY_ROTARYIO ?= 0
|
||||||
|
@ -161,8 +161,6 @@ PY_EXTMOD_O_BASENAME += \
|
|||||||
extmod/machine_pinbase.o \
|
extmod/machine_pinbase.o \
|
||||||
extmod/machine_signal.o \
|
extmod/machine_signal.o \
|
||||||
extmod/machine_pulse.o \
|
extmod/machine_pulse.o \
|
||||||
extmod/machine_i2c.o \
|
|
||||||
extmod/machine_spi.o
|
|
||||||
|
|
||||||
LIB_SRC_C = $(addprefix lib/,\
|
LIB_SRC_C = $(addprefix lib/,\
|
||||||
$(LIB_SRC_C_EXTRA) \
|
$(LIB_SRC_C_EXTRA) \
|
||||||
|
@ -165,8 +165,8 @@ endif
|
|||||||
ifeq ($(CIRCUITPY_GNSS),1)
|
ifeq ($(CIRCUITPY_GNSS),1)
|
||||||
SRC_PATTERNS += gnss/%
|
SRC_PATTERNS += gnss/%
|
||||||
endif
|
endif
|
||||||
ifeq ($(CIRCUITPY_I2CSLAVE),1)
|
ifeq ($(CIRCUITPY_I2CPERIPHERAL),1)
|
||||||
SRC_PATTERNS += i2cslave/%
|
SRC_PATTERNS += i2cperipheral/%
|
||||||
endif
|
endif
|
||||||
ifeq ($(CIRCUITPY_MATH),1)
|
ifeq ($(CIRCUITPY_MATH),1)
|
||||||
SRC_PATTERNS += math/%
|
SRC_PATTERNS += math/%
|
||||||
@ -290,8 +290,8 @@ SRC_COMMON_HAL_ALL = \
|
|||||||
gnss/GNSS.c \
|
gnss/GNSS.c \
|
||||||
gnss/PositionFix.c \
|
gnss/PositionFix.c \
|
||||||
gnss/SatelliteSystem.c \
|
gnss/SatelliteSystem.c \
|
||||||
i2cslave/I2CSlave.c \
|
i2cperipheral/I2CPeripheral.c \
|
||||||
i2cslave/__init__.c \
|
i2cperipheral/__init__.c \
|
||||||
microcontroller/Pin.c \
|
microcontroller/Pin.c \
|
||||||
microcontroller/Processor.c \
|
microcontroller/Processor.c \
|
||||||
microcontroller/__init__.c \
|
microcontroller/__init__.c \
|
||||||
|
@ -408,11 +408,11 @@ extern const struct _mp_obj_module_t gnss_module;
|
|||||||
#define GNSS_MODULE
|
#define GNSS_MODULE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CIRCUITPY_I2CSLAVE
|
#if CIRCUITPY_I2CPERIPHERAL
|
||||||
extern const struct _mp_obj_module_t i2cslave_module;
|
extern const struct _mp_obj_module_t i2cperipheral_module;
|
||||||
#define I2CSLAVE_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_i2cslave), (mp_obj_t)&i2cslave_module },
|
#define I2CPERIPHERAL_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_i2cperipheral), (mp_obj_t)&i2cperipheral_module },
|
||||||
#else
|
#else
|
||||||
#define I2CSLAVE_MODULE
|
#define I2CPERIPHERAL_MODULE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CIRCUITPY_MATH
|
#if CIRCUITPY_MATH
|
||||||
@ -690,7 +690,7 @@ extern const struct _mp_obj_module_t watchdog_module;
|
|||||||
GAMEPAD_MODULE \
|
GAMEPAD_MODULE \
|
||||||
GAMEPADSHIFT_MODULE \
|
GAMEPADSHIFT_MODULE \
|
||||||
GNSS_MODULE \
|
GNSS_MODULE \
|
||||||
I2CSLAVE_MODULE \
|
I2CPERIPHERAL_MODULE \
|
||||||
JSON_MODULE \
|
JSON_MODULE \
|
||||||
MATH_MODULE \
|
MATH_MODULE \
|
||||||
_EVE_MODULE \
|
_EVE_MODULE \
|
||||||
|
@ -112,8 +112,8 @@ CFLAGS += -DCIRCUITPY_GAMEPADSHIFT=$(CIRCUITPY_GAMEPADSHIFT)
|
|||||||
CIRCUITPY_GNSS ?= 0
|
CIRCUITPY_GNSS ?= 0
|
||||||
CFLAGS += -DCIRCUITPY_GNSS=$(CIRCUITPY_GNSS)
|
CFLAGS += -DCIRCUITPY_GNSS=$(CIRCUITPY_GNSS)
|
||||||
|
|
||||||
CIRCUITPY_I2CSLAVE ?= $(CIRCUITPY_FULL_BUILD)
|
CIRCUITPY_I2CPERIPHERAL ?= $(CIRCUITPY_FULL_BUILD)
|
||||||
CFLAGS += -DCIRCUITPY_I2CSLAVE=$(CIRCUITPY_I2CSLAVE)
|
CFLAGS += -DCIRCUITPY_I2CPERIPHERAL=$(CIRCUITPY_I2CPERIPHERAL)
|
||||||
|
|
||||||
CIRCUITPY_MATH ?= 1
|
CIRCUITPY_MATH ?= 1
|
||||||
CFLAGS += -DCIRCUITPY_MATH=$(CIRCUITPY_MATH)
|
CFLAGS += -DCIRCUITPY_MATH=$(CIRCUITPY_MATH)
|
||||||
|
@ -45,6 +45,14 @@
|
|||||||
//| physical level it consists of 2 wires: SCL and SDA, the clock and data
|
//| physical level it consists of 2 wires: SCL and SDA, the clock and data
|
||||||
//| lines respectively.
|
//| lines respectively.
|
||||||
//|
|
//|
|
||||||
|
//| .. seealso:: Using this class directly requires careful lock management.
|
||||||
|
//| Instead, use :class:`~adafruit_bus_device.i2c_device.I2CDevice` to
|
||||||
|
//| manage locks.
|
||||||
|
//|
|
||||||
|
//| .. seealso:: Using this class to directly read registers requires manual
|
||||||
|
//| bit unpacking. Instead, use an existing driver or make one with
|
||||||
|
//| :ref:`Register <register-module-reference>` data descriptors.
|
||||||
|
//|
|
||||||
//| :param ~microcontroller.Pin scl: The clock pin
|
//| :param ~microcontroller.Pin scl: The clock pin
|
||||||
//| :param ~microcontroller.Pin sda: The data pin
|
//| :param ~microcontroller.Pin sda: The data pin
|
||||||
//| :param int frequency: The clock frequency of the bus
|
//| :param int frequency: The clock frequency of the bus
|
||||||
@ -158,7 +166,7 @@ STATIC mp_obj_t bitbangio_i2c_obj_unlock(mp_obj_t self_in) {
|
|||||||
MP_DEFINE_CONST_FUN_OBJ_1(bitbangio_i2c_unlock_obj, bitbangio_i2c_obj_unlock);
|
MP_DEFINE_CONST_FUN_OBJ_1(bitbangio_i2c_unlock_obj, bitbangio_i2c_obj_unlock);
|
||||||
|
|
||||||
//| def readfrom_into(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None) -> Any:
|
//| def readfrom_into(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None) -> Any:
|
||||||
//| """Read into ``buffer`` from the slave specified by ``address``.
|
//| """Read into ``buffer`` from the device selected by ``address``.
|
||||||
//| The number of bytes read will be the length of ``buffer``.
|
//| The number of bytes read will be the length of ``buffer``.
|
||||||
//| At least one byte must be read.
|
//| At least one byte must be read.
|
||||||
//|
|
//|
|
||||||
@ -210,7 +218,7 @@ STATIC mp_obj_t bitbangio_i2c_readfrom_into(size_t n_args, const mp_obj_t *pos_a
|
|||||||
MP_DEFINE_CONST_FUN_OBJ_KW(bitbangio_i2c_readfrom_into_obj, 3, bitbangio_i2c_readfrom_into);
|
MP_DEFINE_CONST_FUN_OBJ_KW(bitbangio_i2c_readfrom_into_obj, 3, bitbangio_i2c_readfrom_into);
|
||||||
|
|
||||||
//| def writeto(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None, stop: bool = True) -> Any:
|
//| def writeto(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None, stop: bool = True) -> Any:
|
||||||
//| """Write the bytes from ``buffer`` to the slave specified by ``address`` and then transmits a
|
//| """Write the bytes from ``buffer`` to the device selected by ``address`` and then transmits a
|
||||||
//| stop bit. Use `writeto_then_readfrom` when needing a write, no stop and repeated start
|
//| stop bit. Use `writeto_then_readfrom` when needing a write, no stop and repeated start
|
||||||
//| before a read.
|
//| before a read.
|
||||||
//|
|
//|
|
||||||
@ -270,7 +278,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(bitbangio_i2c_writeto_obj, 1, bitbangio_i2c_wr
|
|||||||
|
|
||||||
|
|
||||||
//| def writeto_then_readfrom(self, address: int, out_buffer: bytearray, in_buffer: bytearray, *, out_start: int = 0, out_end: int = None, in_start: int = 0, in_end: int = None) -> Any:
|
//| def writeto_then_readfrom(self, address: int, out_buffer: bytearray, in_buffer: bytearray, *, out_start: int = 0, out_end: int = None, in_start: int = 0, in_end: int = None) -> Any:
|
||||||
//| """Write the bytes from ``out_buffer`` to the slave specified by ``address``, generate no stop
|
//| """Write the bytes from ``out_buffer`` to the device selected by ``address``, generate no stop
|
||||||
//| bit, generate a repeated start and read into ``in_buffer``. ``out_buffer`` and
|
//| bit, generate a repeated start and read into ``in_buffer``. ``out_buffer`` and
|
||||||
//| ``in_buffer`` can be the same buffer because they are used sequentially.
|
//| ``in_buffer`` can be the same buffer because they are used sequentially.
|
||||||
//|
|
//|
|
||||||
|
@ -43,19 +43,29 @@
|
|||||||
//| """A 3-4 wire serial protocol
|
//| """A 3-4 wire serial protocol
|
||||||
//|
|
//|
|
||||||
//| SPI is a serial protocol that has exclusive pins for data in and out of the
|
//| SPI is a serial protocol that has exclusive pins for data in and out of the
|
||||||
//| master. It is typically faster than :py:class:`~bitbangio.I2C` because a
|
//| main device. It is typically faster than :py:class:`~bitbangio.I2C` because a
|
||||||
//| separate pin is used to control the active slave rather than a transmitted
|
//| separate pin is used to select a device rather than a transmitted
|
||||||
//| address. This class only manages three of the four SPI lines: `!clock`,
|
//| address. This class only manages three of the four SPI lines: `!clock`,
|
||||||
//| `!MOSI`, `!MISO`. Its up to the client to manage the appropriate slave
|
//| `!MOSI`, `!MISO`. Its up to the client to manage the appropriate
|
||||||
//| select line. (This is common because multiple slaves can share the `!clock`,
|
//| select line, often abbreviated `!CS` or `!SS`. (This is common because
|
||||||
//| `!MOSI` and `!MISO` lines and therefore the hardware.)"""
|
//| multiple secondaries can share the `!clock`, `!MOSI` and `!MISO` lines
|
||||||
|
//| and therefore the hardware.)"""
|
||||||
//|
|
//|
|
||||||
//| def __init__(self, clock: microcontroller.Pin, MOSI: microcontroller.Pin = None, MISO: microcontroller.Pin = None):
|
//| def __init__(self, clock: microcontroller.Pin, MOSI: microcontroller.Pin = None, MISO: microcontroller.Pin = None):
|
||||||
//| """Construct an SPI object on the given pins.
|
//| """Construct an SPI object on the given pins.
|
||||||
//|
|
//|
|
||||||
|
//| .. seealso:: Using this class directly requires careful lock management.
|
||||||
|
//| Instead, use :class:`~adafruit_bus_device.spi_device.SPIDevice` to
|
||||||
|
//| manage locks.
|
||||||
|
//|
|
||||||
|
//| .. seealso:: Using this class to directly read registers requires manual
|
||||||
|
//| bit unpacking. Instead, use an existing driver or make one with
|
||||||
|
//| :ref:`Register <register-module-reference>` data descriptors.
|
||||||
|
//|
|
||||||
|
//|
|
||||||
//| :param ~microcontroller.Pin clock: the pin to use for the clock.
|
//| :param ~microcontroller.Pin clock: the pin to use for the clock.
|
||||||
//| :param ~microcontroller.Pin MOSI: the Master Out Slave In pin.
|
//| :param ~microcontroller.Pin MOSI: the Main Out Selected In pin.
|
||||||
//| :param ~microcontroller.Pin MISO: the Master In Slave Out pin."""
|
//| :param ~microcontroller.Pin MISO: the Main In Selected Out pin."""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ STATIC mp_obj_t busio_i2c_obj_unlock(mp_obj_t self_in) {
|
|||||||
MP_DEFINE_CONST_FUN_OBJ_1(busio_i2c_unlock_obj, busio_i2c_obj_unlock);
|
MP_DEFINE_CONST_FUN_OBJ_1(busio_i2c_unlock_obj, busio_i2c_obj_unlock);
|
||||||
|
|
||||||
//| def readfrom_into(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None) -> Any:
|
//| def readfrom_into(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None) -> Any:
|
||||||
//| """Read into ``buffer`` from the slave specified by ``address``.
|
//| """Read into ``buffer`` from the device selected by ``address``.
|
||||||
//| The number of bytes read will be the length of ``buffer``.
|
//| The number of bytes read will be the length of ``buffer``.
|
||||||
//| At least one byte must be read.
|
//| At least one byte must be read.
|
||||||
//|
|
//|
|
||||||
@ -229,7 +229,7 @@ STATIC mp_obj_t busio_i2c_readfrom_into(size_t n_args, const mp_obj_t *pos_args,
|
|||||||
MP_DEFINE_CONST_FUN_OBJ_KW(busio_i2c_readfrom_into_obj, 3, busio_i2c_readfrom_into);
|
MP_DEFINE_CONST_FUN_OBJ_KW(busio_i2c_readfrom_into_obj, 3, busio_i2c_readfrom_into);
|
||||||
|
|
||||||
//| def writeto(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None, stop: bool = True) -> Any:
|
//| def writeto(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None, stop: bool = True) -> Any:
|
||||||
//| """Write the bytes from ``buffer`` to the slave specified by ``address``.
|
//| """Write the bytes from ``buffer`` to the device selected by ``address``.
|
||||||
//| Transmits a stop bit when stop is True. Setting stop=False is deprecated and stop will be
|
//| Transmits a stop bit when stop is True. Setting stop=False is deprecated and stop will be
|
||||||
//| removed in CircuitPython 6.x. Use `writeto_then_readfrom` when needing a write, no stop and
|
//| removed in CircuitPython 6.x. Use `writeto_then_readfrom` when needing a write, no stop and
|
||||||
//| repeated start before a read.
|
//| repeated start before a read.
|
||||||
@ -288,7 +288,7 @@ STATIC mp_obj_t busio_i2c_writeto(size_t n_args, const mp_obj_t *pos_args, mp_ma
|
|||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(busio_i2c_writeto_obj, 1, busio_i2c_writeto);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(busio_i2c_writeto_obj, 1, busio_i2c_writeto);
|
||||||
|
|
||||||
//| def writeto_then_readfrom(self, address: int, out_buffer: bytearray, in_buffer: bytearray, *, out_start: int = 0, out_end: int = None, in_start: int = 0, in_end: int = None) -> Any:
|
//| def writeto_then_readfrom(self, address: int, out_buffer: bytearray, in_buffer: bytearray, *, out_start: int = 0, out_end: int = None, in_start: int = 0, in_end: int = None) -> Any:
|
||||||
//| """Write the bytes from ``out_buffer`` to the slave specified by ``address``, generate no stop
|
//| """Write the bytes from ``out_buffer`` to the device selected by ``address``, generate no stop
|
||||||
//| bit, generate a repeated start and read into ``in_buffer``. ``out_buffer`` and
|
//| bit, generate a repeated start and read into ``in_buffer``. ``out_buffer`` and
|
||||||
//| ``in_buffer`` can be the same buffer because they are used sequentially.
|
//| ``in_buffer`` can be the same buffer because they are used sequentially.
|
||||||
//|
|
//|
|
||||||
|
@ -45,12 +45,13 @@
|
|||||||
//| """A 3-4 wire serial protocol
|
//| """A 3-4 wire serial protocol
|
||||||
//|
|
//|
|
||||||
//| SPI is a serial protocol that has exclusive pins for data in and out of the
|
//| SPI is a serial protocol that has exclusive pins for data in and out of the
|
||||||
//| master. It is typically faster than :py:class:`~busio.I2C` because a
|
//| main device. It is typically faster than :py:class:`~bitbangio.I2C` because a
|
||||||
//| separate pin is used to control the active slave rather than a transitted
|
//| separate pin is used to select a device rather than a transmitted
|
||||||
//| address. This class only manages three of the four SPI lines: `!clock`,
|
//| address. This class only manages three of the four SPI lines: `!clock`,
|
||||||
//| `!MOSI`, `!MISO`. Its up to the client to manage the appropriate slave
|
//| `!MOSI`, `!MISO`. Its up to the client to manage the appropriate
|
||||||
//| select line. (This is common because multiple slaves can share the `!clock`,
|
//| select line, often abbreviated `!CS` or `!SS`. (This is common because
|
||||||
//| `!MOSI` and `!MISO` lines and therefore the hardware.)"""
|
//| multiple secondaries can share the `!clock`, `!MOSI` and `!MISO` lines
|
||||||
|
//| and therefore the hardware.)"""
|
||||||
//|
|
//|
|
||||||
//| def __init__(self, clock: microcontroller.Pin, MOSI: microcontroller.Pin = None, MISO: microcontroller.Pin = None):
|
//| def __init__(self, clock: microcontroller.Pin, MOSI: microcontroller.Pin = None, MISO: microcontroller.Pin = None):
|
||||||
//|
|
//|
|
||||||
@ -72,8 +73,8 @@
|
|||||||
//| :ref:`Register <register-module-reference>` data descriptors.
|
//| :ref:`Register <register-module-reference>` data descriptors.
|
||||||
//|
|
//|
|
||||||
//| :param ~microcontroller.Pin clock: the pin to use for the clock.
|
//| :param ~microcontroller.Pin clock: the pin to use for the clock.
|
||||||
//| :param ~microcontroller.Pin MOSI: the Master Out Slave In pin.
|
//| :param ~microcontroller.Pin MOSI: the Main Out Selected In pin.
|
||||||
//| :param ~microcontroller.Pin MISO: the Master In Slave Out pin."""
|
//| :param ~microcontroller.Pin MISO: the Main In Selected Out pin."""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "shared-bindings/microcontroller/Pin.h"
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
#include "shared-bindings/i2cslave/I2CSlave.h"
|
#include "shared-bindings/i2cperipheral/I2CPeripheral.h"
|
||||||
#include "shared-bindings/time/__init__.h"
|
#include "shared-bindings/time/__init__.h"
|
||||||
#include "shared-bindings/util.h"
|
#include "shared-bindings/util.h"
|
||||||
|
|
||||||
@ -39,22 +39,22 @@
|
|||||||
#include "py/objproperty.h"
|
#include "py/objproperty.h"
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
|
|
||||||
STATIC mp_obj_t mp_obj_new_i2cslave_i2c_slave_request(i2cslave_i2c_slave_obj_t *slave, uint8_t address, bool is_read, bool is_restart) {
|
STATIC mp_obj_t mp_obj_new_i2cperipheral_i2c_peripheral_request(i2cperipheral_i2c_peripheral_obj_t *peripheral, uint8_t address, bool is_read, bool is_restart) {
|
||||||
i2cslave_i2c_slave_request_obj_t *self = m_new_obj(i2cslave_i2c_slave_request_obj_t);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = m_new_obj(i2cperipheral_i2c_peripheral_request_obj_t);
|
||||||
self->base.type = &i2cslave_i2c_slave_request_type;
|
self->base.type = &i2cperipheral_i2c_peripheral_request_type;
|
||||||
self->slave = slave;
|
self->peripheral = peripheral;
|
||||||
self->address = address;
|
self->address = address;
|
||||||
self->is_read = is_read;
|
self->is_read = is_read;
|
||||||
self->is_restart = is_restart;
|
self->is_restart = is_restart;
|
||||||
return (mp_obj_t)self;
|
return (mp_obj_t)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
//| class I2CSlave:
|
//| class I2CPeripheral:
|
||||||
//| """Two wire serial protocol slave"""
|
//| """Two wire serial protocol peripheral"""
|
||||||
//|
|
//|
|
||||||
//| def __init__(self, scl: microcontroller.Pin, sda: microcontroller.Pin, addresses: tuple, smbus: bool = False):
|
//| def __init__(self, scl: microcontroller.Pin, sda: microcontroller.Pin, addresses: tuple, smbus: bool = False):
|
||||||
//| """I2C is a two-wire protocol for communicating between devices.
|
//| """I2C is a two-wire protocol for communicating between devices.
|
||||||
//| This implements the slave side.
|
//| This implements the peripheral (sensor, secondary) side.
|
||||||
//|
|
//|
|
||||||
//| :param ~microcontroller.Pin scl: The clock pin
|
//| :param ~microcontroller.Pin scl: The clock pin
|
||||||
//| :param ~microcontroller.Pin sda: The data pin
|
//| :param ~microcontroller.Pin sda: The data pin
|
||||||
@ -62,9 +62,9 @@ STATIC mp_obj_t mp_obj_new_i2cslave_i2c_slave_request(i2cslave_i2c_slave_obj_t *
|
|||||||
//| :param bool smbus: Use SMBUS timings if the hardware supports it"""
|
//| :param bool smbus: Use SMBUS timings if the hardware supports it"""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||||
i2cslave_i2c_slave_obj_t *self = m_new_obj(i2cslave_i2c_slave_obj_t);
|
i2cperipheral_i2c_peripheral_obj_t *self = m_new_obj(i2cperipheral_i2c_peripheral_obj_t);
|
||||||
self->base.type = &i2cslave_i2c_slave_type;
|
self->base.type = &i2cperipheral_i2c_peripheral_type;
|
||||||
enum { ARG_scl, ARG_sda, ARG_addresses, ARG_smbus };
|
enum { ARG_scl, ARG_sda, ARG_addresses, ARG_smbus };
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_scl, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_scl, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
@ -98,7 +98,7 @@ STATIC mp_obj_t i2cslave_i2c_slave_make_new(const mp_obj_type_t *type, size_t n_
|
|||||||
mp_raise_ValueError(translate("addresses is empty"));
|
mp_raise_ValueError(translate("addresses is empty"));
|
||||||
}
|
}
|
||||||
|
|
||||||
common_hal_i2cslave_i2c_slave_construct(self, scl, sda, addresses, i, args[ARG_smbus].u_bool);
|
common_hal_i2cperipheral_i2c_peripheral_construct(self, scl, sda, addresses, i, args[ARG_smbus].u_bool);
|
||||||
return (mp_obj_t)self;
|
return (mp_obj_t)self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,13 +106,13 @@ STATIC mp_obj_t i2cslave_i2c_slave_make_new(const mp_obj_type_t *type, size_t n_
|
|||||||
//| """Releases control of the underlying hardware so other classes can use it."""
|
//| """Releases control of the underlying hardware so other classes can use it."""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_obj_deinit(mp_obj_t self_in) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_obj_deinit(mp_obj_t self_in) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cslave_i2c_slave_type));
|
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cperipheral_i2c_peripheral_type));
|
||||||
i2cslave_i2c_slave_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
i2cperipheral_i2c_peripheral_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
common_hal_i2cslave_i2c_slave_deinit(self);
|
common_hal_i2cperipheral_i2c_peripheral_deinit(self);
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_1(i2cslave_i2c_slave_deinit_obj, i2cslave_i2c_slave_obj_deinit);
|
MP_DEFINE_CONST_FUN_OBJ_1(i2cperipheral_i2c_peripheral_deinit_obj, i2cperipheral_i2c_peripheral_obj_deinit);
|
||||||
|
|
||||||
//| def __enter__(self, ) -> Any:
|
//| def __enter__(self, ) -> Any:
|
||||||
//| """No-op used in Context Managers."""
|
//| """No-op used in Context Managers."""
|
||||||
@ -125,25 +125,25 @@ MP_DEFINE_CONST_FUN_OBJ_1(i2cslave_i2c_slave_deinit_obj, i2cslave_i2c_slave_obj_
|
|||||||
//| :ref:`lifetime-and-contextmanagers` for more info."""
|
//| :ref:`lifetime-and-contextmanagers` for more info."""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_obj___exit__(size_t n_args, const mp_obj_t *args) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_obj___exit__(size_t n_args, const mp_obj_t *args) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(args[0], &i2cslave_i2c_slave_type));
|
mp_check_self(MP_OBJ_IS_TYPE(args[0], &i2cperipheral_i2c_peripheral_type));
|
||||||
i2cslave_i2c_slave_obj_t *self = MP_OBJ_TO_PTR(args[0]);
|
i2cperipheral_i2c_peripheral_obj_t *self = MP_OBJ_TO_PTR(args[0]);
|
||||||
common_hal_i2cslave_i2c_slave_deinit(self);
|
common_hal_i2cperipheral_i2c_peripheral_deinit(self);
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(i2cslave_i2c_slave___exit___obj, 4, 4, i2cslave_i2c_slave_obj___exit__);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(i2cperipheral_i2c_peripheral___exit___obj, 4, 4, i2cperipheral_i2c_peripheral_obj___exit__);
|
||||||
|
|
||||||
//| def request(self, timeout: float = -1) -> Any:
|
//| def request(self, timeout: float = -1) -> Any:
|
||||||
//| """Wait for an I2C request from a master.
|
//| """Wait for an I2C request.
|
||||||
//|
|
//|
|
||||||
//| :param float timeout: Timeout in seconds. Zero means wait forever, a negative value means check once
|
//| :param float timeout: Timeout in seconds. Zero means wait forever, a negative value means check once
|
||||||
//| :return: I2C Slave Request or None if timeout=-1 and there's no request
|
//| :return: I2C Slave Request or None if timeout=-1 and there's no request
|
||||||
//| :rtype: ~i2cslave.I2CSlaveRequest"""
|
//| :rtype: ~i2cperipheral.I2CPeripheralRequest"""
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(pos_args[0], &i2cslave_i2c_slave_type));
|
mp_check_self(MP_OBJ_IS_TYPE(pos_args[0], &i2cperipheral_i2c_peripheral_type));
|
||||||
i2cslave_i2c_slave_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
i2cperipheral_i2c_peripheral_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||||
if(common_hal_i2cslave_i2c_slave_deinited(self)) {
|
if(common_hal_i2cperipheral_i2c_peripheral_deinited(self)) {
|
||||||
raise_deinited_error();
|
raise_deinited_error();
|
||||||
}
|
}
|
||||||
enum { ARG_timeout };
|
enum { ARG_timeout };
|
||||||
@ -180,7 +180,7 @@ STATIC mp_obj_t i2cslave_i2c_slave_request(size_t n_args, const mp_obj_t *pos_ar
|
|||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
int status = common_hal_i2cslave_i2c_slave_is_addressed(self, &address, &is_read, &is_restart);
|
int status = common_hal_i2cperipheral_i2c_peripheral_is_addressed(self, &address, &is_read, &is_restart);
|
||||||
if (status < 0) {
|
if (status < 0) {
|
||||||
// On error try one more time before bailing out
|
// On error try one more time before bailing out
|
||||||
if (last_error) {
|
if (last_error) {
|
||||||
@ -198,7 +198,7 @@ STATIC mp_obj_t i2cslave_i2c_slave_request(size_t n_args, const mp_obj_t *pos_ar
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mp_obj_new_i2cslave_i2c_slave_request(self, address, is_read, is_restart);
|
return mp_obj_new_i2cperipheral_i2c_peripheral_request(self, address, is_read, is_restart);
|
||||||
} while (forever || common_hal_time_monotonic() < timeout_end);
|
} while (forever || common_hal_time_monotonic() < timeout_end);
|
||||||
|
|
||||||
if (timeout_ms > 0) {
|
if (timeout_ms > 0) {
|
||||||
@ -206,39 +206,39 @@ STATIC mp_obj_t i2cslave_i2c_slave_request(size_t n_args, const mp_obj_t *pos_ar
|
|||||||
}
|
}
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(i2cslave_i2c_slave_request_obj, 1, i2cslave_i2c_slave_request);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(i2cperipheral_i2c_peripheral_request_obj, 1, i2cperipheral_i2c_peripheral_request);
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t i2cslave_i2c_slave_locals_dict_table[] = {
|
STATIC const mp_rom_map_elem_t i2cperipheral_i2c_peripheral_locals_dict_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&i2cslave_i2c_slave_deinit_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_deinit_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
|
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&i2cslave_i2c_slave___exit___obj) },
|
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&i2cperipheral_i2c_peripheral___exit___obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_request), MP_ROM_PTR(&i2cslave_i2c_slave_request_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_request), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request_obj) },
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC MP_DEFINE_CONST_DICT(i2cslave_i2c_slave_locals_dict, i2cslave_i2c_slave_locals_dict_table);
|
STATIC MP_DEFINE_CONST_DICT(i2cperipheral_i2c_peripheral_locals_dict, i2cperipheral_i2c_peripheral_locals_dict_table);
|
||||||
|
|
||||||
const mp_obj_type_t i2cslave_i2c_slave_type = {
|
const mp_obj_type_t i2cperipheral_i2c_peripheral_type = {
|
||||||
{ &mp_type_type },
|
{ &mp_type_type },
|
||||||
.name = MP_QSTR_I2CSlave,
|
.name = MP_QSTR_I2CPeripheral,
|
||||||
.make_new = i2cslave_i2c_slave_make_new,
|
.make_new = i2cperipheral_i2c_peripheral_make_new,
|
||||||
.locals_dict = (mp_obj_dict_t*)&i2cslave_i2c_slave_locals_dict,
|
.locals_dict = (mp_obj_dict_t*)&i2cperipheral_i2c_peripheral_locals_dict,
|
||||||
};
|
};
|
||||||
|
|
||||||
//| class I2CSlaveRequest:
|
//| class I2CPeripheralRequest:
|
||||||
//|
|
//|
|
||||||
//| def __init__(self, slave: i2cslave.I2CSlave, address: int, is_read: bool, is_restart: bool):
|
//| def __init__(self, peripheral: i2cperipheral.I2CPeripheral, address: int, is_read: bool, is_restart: bool):
|
||||||
//| """I2C transfer request from a master.
|
//| """Information about an I2C transfer request
|
||||||
//| This cannot be instantiated directly, but is returned by :py:meth:`I2CSlave.request`.
|
//| This cannot be instantiated directly, but is returned by :py:meth:`I2CPeripheral.request`.
|
||||||
//|
|
//|
|
||||||
//| :param slave: The I2C Slave receiving this request
|
//| :param peripheral: The I2CPeripheral object receiving this request
|
||||||
//| :param address: I2C address
|
//| :param address: I2C address
|
||||||
//| :param is_read: I2C Master read request
|
//| :param is_read: True if the main peripheral is requesting data
|
||||||
//| :param is_restart: Repeated Start Condition"""
|
//| :param is_restart: Repeated Start Condition"""
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
||||||
mp_arg_check_num(n_args, kw_args, 4, 4, false);
|
mp_arg_check_num(n_args, kw_args, 4, 4, false);
|
||||||
return mp_obj_new_i2cslave_i2c_slave_request(args[0], mp_obj_get_int(args[1]), mp_obj_is_true(args[2]), mp_obj_is_true(args[3]));
|
return mp_obj_new_i2cperipheral_i2c_peripheral_request(args[0], mp_obj_get_int(args[1]), mp_obj_is_true(args[2]), mp_obj_is_true(args[3]));
|
||||||
}
|
}
|
||||||
|
|
||||||
//| def __enter__(self, ) -> Any:
|
//| def __enter__(self, ) -> Any:
|
||||||
@ -251,56 +251,56 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_make_new(const mp_obj_type_t *type, s
|
|||||||
//| """Close the request."""
|
//| """Close the request."""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_obj___exit__(size_t n_args, const mp_obj_t *args) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_obj___exit__(size_t n_args, const mp_obj_t *args) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(args[0], &i2cslave_i2c_slave_request_type));
|
mp_check_self(MP_OBJ_IS_TYPE(args[0], &i2cperipheral_i2c_peripheral_request_type));
|
||||||
i2cslave_i2c_slave_request_obj_t *self = MP_OBJ_TO_PTR(args[0]);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = MP_OBJ_TO_PTR(args[0]);
|
||||||
common_hal_i2cslave_i2c_slave_close(self->slave);
|
common_hal_i2cperipheral_i2c_peripheral_close(self->peripheral);
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(i2cslave_i2c_slave_request___exit___obj, 4, 4, i2cslave_i2c_slave_request_obj___exit__);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(i2cperipheral_i2c_peripheral_request___exit___obj, 4, 4, i2cperipheral_i2c_peripheral_request_obj___exit__);
|
||||||
|
|
||||||
//| address: int = ...
|
//| address: int = ...
|
||||||
//| """The I2C address of the request."""
|
//| """The I2C address of the request."""
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_get_address(mp_obj_t self_in) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_get_address(mp_obj_t self_in) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cslave_i2c_slave_request_type));
|
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cperipheral_i2c_peripheral_request_type));
|
||||||
i2cslave_i2c_slave_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
return mp_obj_new_int(self->address);
|
return mp_obj_new_int(self->address);
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_PROP_GET(i2cslave_i2c_slave_request_address_obj, i2cslave_i2c_slave_request_get_address);
|
MP_DEFINE_CONST_PROP_GET(i2cperipheral_i2c_peripheral_request_address_obj, i2cperipheral_i2c_peripheral_request_get_address);
|
||||||
|
|
||||||
//| is_read: bool = ...
|
//| is_read: bool = ...
|
||||||
//| """The I2C master is reading from the device."""
|
//| """The I2C main controller is reading from this peripheral."""
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_get_is_read(mp_obj_t self_in) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_get_is_read(mp_obj_t self_in) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cslave_i2c_slave_request_type));
|
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cperipheral_i2c_peripheral_request_type));
|
||||||
i2cslave_i2c_slave_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
return mp_obj_new_bool(self->is_read);
|
return mp_obj_new_bool(self->is_read);
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_PROP_GET(i2cslave_i2c_slave_request_is_read_obj, i2cslave_i2c_slave_request_get_is_read);
|
MP_DEFINE_CONST_PROP_GET(i2cperipheral_i2c_peripheral_request_is_read_obj, i2cperipheral_i2c_peripheral_request_get_is_read);
|
||||||
|
|
||||||
//| is_restart: bool = ...
|
//| is_restart: bool = ...
|
||||||
//| """Is Repeated Start Condition."""
|
//| """Is Repeated Start Condition."""
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_get_is_restart(mp_obj_t self_in) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_get_is_restart(mp_obj_t self_in) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cslave_i2c_slave_request_type));
|
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cperipheral_i2c_peripheral_request_type));
|
||||||
i2cslave_i2c_slave_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
return mp_obj_new_bool(self->is_restart);
|
return mp_obj_new_bool(self->is_restart);
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_PROP_GET(i2cslave_i2c_slave_request_is_restart_obj, i2cslave_i2c_slave_request_get_is_restart);
|
MP_DEFINE_CONST_PROP_GET(i2cperipheral_i2c_peripheral_request_is_restart_obj, i2cperipheral_i2c_peripheral_request_get_is_restart);
|
||||||
|
|
||||||
//| def read(self, n: int = -1, ack: bool = True) -> bytearray:
|
//| def read(self, n: int = -1, ack: bool = True) -> bytearray:
|
||||||
//| """Read data.
|
//| """Read data.
|
||||||
//| If ack=False, the caller is responsible for calling :py:meth:`I2CSlaveRequest.ack`.
|
//| If ack=False, the caller is responsible for calling :py:meth:`I2CPeripheralRequest.ack`.
|
||||||
//|
|
//|
|
||||||
//| :param n: Number of bytes to read (negative means all)
|
//| :param n: Number of bytes to read (negative means all)
|
||||||
//| :param ack: Whether or not to send an ACK after the n'th byte
|
//| :param ack: Whether or not to send an ACK after the n'th byte
|
||||||
//| :return: Bytes read"""
|
//| :return: Bytes read"""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_read(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_read(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(pos_args[0], &i2cslave_i2c_slave_request_type));
|
mp_check_self(MP_OBJ_IS_TYPE(pos_args[0], &i2cperipheral_i2c_peripheral_request_type));
|
||||||
i2cslave_i2c_slave_request_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||||
enum { ARG_n, ARG_ack };
|
enum { ARG_n, ARG_ack };
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_n, MP_ARG_INT, {.u_int = -1} },
|
{ MP_QSTR_n, MP_ARG_INT, {.u_int = -1} },
|
||||||
@ -329,7 +329,7 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_read(size_t n_args, const mp_obj_t *p
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t data;
|
uint8_t data;
|
||||||
int num = common_hal_i2cslave_i2c_slave_read_byte(self->slave, &data);
|
int num = common_hal_i2cperipheral_i2c_peripheral_read_byte(self->peripheral, &data);
|
||||||
if (num == 0) {
|
if (num == 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -338,16 +338,16 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_read(size_t n_args, const mp_obj_t *p
|
|||||||
buffer[i++] = data;
|
buffer[i++] = data;
|
||||||
if (i == n) {
|
if (i == n) {
|
||||||
if (ack) {
|
if (ack) {
|
||||||
common_hal_i2cslave_i2c_slave_ack(self->slave, true);
|
common_hal_i2cperipheral_i2c_peripheral_ack(self->peripheral, true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
common_hal_i2cslave_i2c_slave_ack(self->slave, true);
|
common_hal_i2cperipheral_i2c_peripheral_ack(self->peripheral, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return mp_obj_new_bytearray(i, buffer);
|
return mp_obj_new_bytearray(i, buffer);
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(i2cslave_i2c_slave_request_read_obj, 1, i2cslave_i2c_slave_request_read);
|
MP_DEFINE_CONST_FUN_OBJ_KW(i2cperipheral_i2c_peripheral_request_read_obj, 1, i2cperipheral_i2c_peripheral_request_read);
|
||||||
|
|
||||||
//| def write(self, buffer: bytearray) -> int:
|
//| def write(self, buffer: bytearray) -> int:
|
||||||
//| """Write the data contained in buffer.
|
//| """Write the data contained in buffer.
|
||||||
@ -356,9 +356,9 @@ MP_DEFINE_CONST_FUN_OBJ_KW(i2cslave_i2c_slave_request_read_obj, 1, i2cslave_i2c_
|
|||||||
//| :return: Number of bytes written"""
|
//| :return: Number of bytes written"""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_write(mp_obj_t self_in, mp_obj_t buf_in) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_write(mp_obj_t self_in, mp_obj_t buf_in) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cslave_i2c_slave_request_type));
|
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cperipheral_i2c_peripheral_request_type));
|
||||||
i2cslave_i2c_slave_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
|
|
||||||
if (!self->is_read) {
|
if (!self->is_read) {
|
||||||
mp_raise_OSError(MP_EACCES);
|
mp_raise_OSError(MP_EACCES);
|
||||||
@ -373,7 +373,7 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_write(mp_obj_t self_in, mp_obj_t buf_
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int num = common_hal_i2cslave_i2c_slave_write_byte(self->slave, ((uint8_t *)(bufinfo.buf))[i]);
|
int num = common_hal_i2cperipheral_i2c_peripheral_write_byte(self->peripheral, ((uint8_t *)(bufinfo.buf))[i]);
|
||||||
if (num == 0) {
|
if (num == 0) {
|
||||||
return mp_obj_new_int(i);
|
return mp_obj_new_int(i);
|
||||||
}
|
}
|
||||||
@ -381,55 +381,55 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_write(mp_obj_t self_in, mp_obj_t buf_
|
|||||||
|
|
||||||
return mp_obj_new_int(bufinfo.len);
|
return mp_obj_new_int(bufinfo.len);
|
||||||
}
|
}
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_2(i2cslave_i2c_slave_request_write_obj, i2cslave_i2c_slave_request_write);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_2(i2cperipheral_i2c_peripheral_request_write_obj, i2cperipheral_i2c_peripheral_request_write);
|
||||||
|
|
||||||
//| def ack(self, ack: bool = True) -> Any:
|
//| def ack(self, ack: bool = True) -> Any:
|
||||||
//| """Acknowledge or Not Acknowledge last byte received.
|
//| """Acknowledge or Not Acknowledge last byte received.
|
||||||
//| Use together with :py:meth:`I2CSlaveRequest.read` ack=False.
|
//| Use together with :py:meth:`I2CPeripheralRequest.read` ack=False.
|
||||||
//|
|
//|
|
||||||
//| :param ack: Whether to send an ACK or NACK"""
|
//| :param ack: Whether to send an ACK or NACK"""
|
||||||
//| ...
|
//| ...
|
||||||
//|
|
//|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_ack(uint n_args, const mp_obj_t *args) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_ack(uint n_args, const mp_obj_t *args) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(args[0], &i2cslave_i2c_slave_request_type));
|
mp_check_self(MP_OBJ_IS_TYPE(args[0], &i2cperipheral_i2c_peripheral_request_type));
|
||||||
i2cslave_i2c_slave_request_obj_t *self = MP_OBJ_TO_PTR(args[0]);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = MP_OBJ_TO_PTR(args[0]);
|
||||||
bool ack = (n_args == 1) ? true : mp_obj_is_true(args[1]);
|
bool ack = (n_args == 1) ? true : mp_obj_is_true(args[1]);
|
||||||
|
|
||||||
if (self->is_read) {
|
if (self->is_read) {
|
||||||
mp_raise_OSError(MP_EACCES);
|
mp_raise_OSError(MP_EACCES);
|
||||||
}
|
}
|
||||||
|
|
||||||
common_hal_i2cslave_i2c_slave_ack(self->slave, ack);
|
common_hal_i2cperipheral_i2c_peripheral_ack(self->peripheral, ack);
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(i2cslave_i2c_slave_request_ack_obj, 1, 2, i2cslave_i2c_slave_request_ack);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(i2cperipheral_i2c_peripheral_request_ack_obj, 1, 2, i2cperipheral_i2c_peripheral_request_ack);
|
||||||
|
|
||||||
STATIC mp_obj_t i2cslave_i2c_slave_request_close(mp_obj_t self_in) {
|
STATIC mp_obj_t i2cperipheral_i2c_peripheral_request_close(mp_obj_t self_in) {
|
||||||
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cslave_i2c_slave_request_type));
|
mp_check_self(MP_OBJ_IS_TYPE(self_in, &i2cperipheral_i2c_peripheral_request_type));
|
||||||
i2cslave_i2c_slave_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
i2cperipheral_i2c_peripheral_request_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||||
|
|
||||||
common_hal_i2cslave_i2c_slave_close(self->slave);
|
common_hal_i2cperipheral_i2c_peripheral_close(self->peripheral);
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(i2cslave_i2c_slave_request_close_obj, i2cslave_i2c_slave_request_close);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_1(i2cperipheral_i2c_peripheral_request_close_obj, i2cperipheral_i2c_peripheral_request_close);
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t i2cslave_i2c_slave_request_locals_dict_table[] = {
|
STATIC const mp_rom_map_elem_t i2cperipheral_i2c_peripheral_request_locals_dict_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
|
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&i2cslave_i2c_slave_request___exit___obj) },
|
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request___exit___obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_address), MP_ROM_PTR(&i2cslave_i2c_slave_request_address_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_address), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request_address_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_is_read), MP_ROM_PTR(&i2cslave_i2c_slave_request_is_read_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_is_read), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request_is_read_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_is_restart), MP_ROM_PTR(&i2cslave_i2c_slave_request_is_restart_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_is_restart), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request_is_restart_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&i2cslave_i2c_slave_request_read_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request_read_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&i2cslave_i2c_slave_request_write_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request_write_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_ack), MP_ROM_PTR(&i2cslave_i2c_slave_request_ack_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_ack), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request_ack_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&i2cslave_i2c_slave_request_close_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_request_close_obj) },
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC MP_DEFINE_CONST_DICT(i2cslave_i2c_slave_request_locals_dict, i2cslave_i2c_slave_request_locals_dict_table);
|
STATIC MP_DEFINE_CONST_DICT(i2cperipheral_i2c_peripheral_request_locals_dict, i2cperipheral_i2c_peripheral_request_locals_dict_table);
|
||||||
|
|
||||||
const mp_obj_type_t i2cslave_i2c_slave_request_type = {
|
const mp_obj_type_t i2cperipheral_i2c_peripheral_request_type = {
|
||||||
{ &mp_type_type },
|
{ &mp_type_type },
|
||||||
.name = MP_QSTR_I2CSlaveRequest,
|
.name = MP_QSTR_I2CPeripheralRequest,
|
||||||
.make_new = i2cslave_i2c_slave_request_make_new,
|
.make_new = i2cperipheral_i2c_peripheral_request_make_new,
|
||||||
.locals_dict = (mp_obj_dict_t*)&i2cslave_i2c_slave_request_locals_dict,
|
.locals_dict = (mp_obj_dict_t*)&i2cperipheral_i2c_peripheral_request_locals_dict,
|
||||||
};
|
};
|
@ -30,31 +30,31 @@
|
|||||||
#include "py/obj.h"
|
#include "py/obj.h"
|
||||||
|
|
||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
#include "common-hal/i2cslave/I2CSlave.h"
|
#include "common-hal/i2cperipheral/I2CPeripheral.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
mp_obj_base_t base;
|
mp_obj_base_t base;
|
||||||
i2cslave_i2c_slave_obj_t *slave;
|
i2cperipheral_i2c_peripheral_obj_t *peripheral;
|
||||||
uint16_t address;
|
uint16_t address;
|
||||||
bool is_read;
|
bool is_read;
|
||||||
bool is_restart;
|
bool is_restart;
|
||||||
} i2cslave_i2c_slave_request_obj_t;
|
} i2cperipheral_i2c_peripheral_request_obj_t;
|
||||||
|
|
||||||
extern const mp_obj_type_t i2cslave_i2c_slave_request_type;
|
extern const mp_obj_type_t i2cperipheral_i2c_peripheral_request_type;
|
||||||
|
|
||||||
extern const mp_obj_type_t i2cslave_i2c_slave_type;
|
extern const mp_obj_type_t i2cperipheral_i2c_peripheral_type;
|
||||||
|
|
||||||
extern void common_hal_i2cslave_i2c_slave_construct(i2cslave_i2c_slave_obj_t *self,
|
extern void common_hal_i2cperipheral_i2c_peripheral_construct(i2cperipheral_i2c_peripheral_obj_t *self,
|
||||||
const mcu_pin_obj_t* scl, const mcu_pin_obj_t* sda,
|
const mcu_pin_obj_t* scl, const mcu_pin_obj_t* sda,
|
||||||
uint8_t *addresses, unsigned int num_addresses, bool smbus);
|
uint8_t *addresses, unsigned int num_addresses, bool smbus);
|
||||||
extern void common_hal_i2cslave_i2c_slave_deinit(i2cslave_i2c_slave_obj_t *self);
|
extern void common_hal_i2cperipheral_i2c_peripheral_deinit(i2cperipheral_i2c_peripheral_obj_t *self);
|
||||||
extern bool common_hal_i2cslave_i2c_slave_deinited(i2cslave_i2c_slave_obj_t *self);
|
extern bool common_hal_i2cperipheral_i2c_peripheral_deinited(i2cperipheral_i2c_peripheral_obj_t *self);
|
||||||
|
|
||||||
extern int common_hal_i2cslave_i2c_slave_is_addressed(i2cslave_i2c_slave_obj_t *self,
|
extern int common_hal_i2cperipheral_i2c_peripheral_is_addressed(i2cperipheral_i2c_peripheral_obj_t *self,
|
||||||
uint8_t *address, bool *is_read, bool *is_restart);
|
uint8_t *address, bool *is_read, bool *is_restart);
|
||||||
extern int common_hal_i2cslave_i2c_slave_read_byte(i2cslave_i2c_slave_obj_t *self, uint8_t *data);
|
extern int common_hal_i2cperipheral_i2c_peripheral_read_byte(i2cperipheral_i2c_peripheral_obj_t *self, uint8_t *data);
|
||||||
extern int common_hal_i2cslave_i2c_slave_write_byte(i2cslave_i2c_slave_obj_t *self, uint8_t data);
|
extern int common_hal_i2cperipheral_i2c_peripheral_write_byte(i2cperipheral_i2c_peripheral_obj_t *self, uint8_t data);
|
||||||
extern void common_hal_i2cslave_i2c_slave_ack(i2cslave_i2c_slave_obj_t *self, bool ack);
|
extern void common_hal_i2cperipheral_i2c_peripheral_ack(i2cperipheral_i2c_peripheral_obj_t *self, bool ack);
|
||||||
extern void common_hal_i2cslave_i2c_slave_close(i2cslave_i2c_slave_obj_t *self);
|
extern void common_hal_i2cperipheral_i2c_peripheral_close(i2cperipheral_i2c_peripheral_obj_t *self);
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_BUSIO_I2C_SLAVE_H
|
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_BUSIO_I2C_SLAVE_H
|
@ -30,32 +30,32 @@
|
|||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
|
|
||||||
#include "shared-bindings/microcontroller/Pin.h"
|
#include "shared-bindings/microcontroller/Pin.h"
|
||||||
//#include "shared-bindings/i2cslave/__init__.h"
|
//#include "shared-bindings/i2cperipheral/__init__.h"
|
||||||
#include "shared-bindings/i2cslave/I2CSlave.h"
|
#include "shared-bindings/i2cperipheral/I2CPeripheral.h"
|
||||||
|
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
|
|
||||||
//| """Two wire serial protocol slave
|
//| """Two wire serial protocol peripheral
|
||||||
//|
|
//|
|
||||||
//| The `i2cslave` module contains classes to support a I2C slave.
|
//| The `i2cperipheral` module contains classes to support an I2C peripheral.
|
||||||
//|
|
//|
|
||||||
//| Example emulating 2 devices::
|
//| Example emulating a peripheral with 2 addresses (read and write)::
|
||||||
//|
|
//|
|
||||||
//| import board
|
//| import board
|
||||||
//| from i2cslave import I2CSlave
|
//| from i2cperipheral import I2CPeripheral
|
||||||
//|
|
//|
|
||||||
//| regs = [0] * 16
|
//| regs = [0] * 16
|
||||||
//| index = 0
|
//| index = 0
|
||||||
//|
|
//|
|
||||||
//| with I2CSlave(board.SCL, board.SDA, (0x40, 0x41)) as slave:
|
//| with I2CPeripheral(board.SCL, board.SDA, (0x40, 0x41)) as device:
|
||||||
//| while True:
|
//| while True:
|
||||||
//| r = slave.request()
|
//| r = device.request()
|
||||||
//| if not r:
|
//| if not r:
|
||||||
//| # Maybe do some housekeeping
|
//| # Maybe do some housekeeping
|
||||||
//| continue
|
//| continue
|
||||||
//| with r: # Closes the transfer if necessary by sending a NACK or feeding the master dummy bytes
|
//| with r: # Closes the transfer if necessary by sending a NACK or feeding dummy bytes
|
||||||
//| if r.address == 0x40:
|
//| if r.address == 0x40:
|
||||||
//| if not r.is_read: # Master write which is Slave read
|
//| if not r.is_read: # Main write which is Selected read
|
||||||
//| b = r.read(1)
|
//| b = r.read(1)
|
||||||
//| if not b or b[0] > 15:
|
//| if not b or b[0] > 15:
|
||||||
//| break
|
//| break
|
||||||
@ -63,11 +63,11 @@
|
|||||||
//| b = r.read(1)
|
//| b = r.read(1)
|
||||||
//| if b:
|
//| if b:
|
||||||
//| regs[index] = b[0]
|
//| regs[index] = b[0]
|
||||||
//| elif r.is_restart: # Combined transfer: This is the Master read message
|
//| elif r.is_restart: # Combined transfer: This is the Main read message
|
||||||
//| n = r.write(bytes([regs[index]]))
|
//| n = r.write(bytes([regs[index]]))
|
||||||
//| #else:
|
//| #else:
|
||||||
//| # A read transfer is not supported in this example
|
//| # A read transfer is not supported in this example
|
||||||
//| # If the Master tries, it will get 0xff byte(s) by the ctx manager (r.close())
|
//| # If the microcontroller tries, it will get 0xff byte(s) by the ctx manager (r.close())
|
||||||
//| elif r.address == 0x41:
|
//| elif r.address == 0x41:
|
||||||
//| if not r.is_read:
|
//| if not r.is_read:
|
||||||
//| b = r.read(1)
|
//| b = r.read(1)
|
||||||
@ -75,7 +75,7 @@
|
|||||||
//| # do something
|
//| # do something
|
||||||
//| pass
|
//| pass
|
||||||
//|
|
//|
|
||||||
//| This example sets up an I2C slave that can be accessed from Linux like this::
|
//| This example sets up an I2C device that can be accessed from Linux like this::
|
||||||
//|
|
//|
|
||||||
//| $ i2cget -y 1 0x40 0x01
|
//| $ i2cget -y 1 0x40 0x01
|
||||||
//| 0x00
|
//| 0x00
|
||||||
@ -84,22 +84,23 @@
|
|||||||
//| 0xaa
|
//| 0xaa
|
||||||
//|
|
//|
|
||||||
//| .. warning::
|
//| .. warning::
|
||||||
//| I2CSlave makes use of clock stretching in order to slow down the master.
|
//| I2CPeripheral makes use of clock stretching in order to slow down
|
||||||
//| Make sure the I2C master supports this.
|
//| the host.
|
||||||
|
//| Make sure the I2C host supports this.
|
||||||
//|
|
//|
|
||||||
//| Raspberry Pi in particular does not support this with its I2C hw block.
|
//| Raspberry Pi in particular does not support this with its I2C hw block.
|
||||||
//| This can be worked around by using the ``i2c-gpio`` bit banging driver.
|
//| This can be worked around by using the ``i2c-gpio`` bit banging driver.
|
||||||
//| Since the RPi firmware uses the hw i2c, it's not possible to emulate a HAT eeprom."""
|
//| Since the RPi firmware uses the hw i2c, it's not possible to emulate a HAT eeprom."""
|
||||||
//|
|
//|
|
||||||
|
|
||||||
STATIC const mp_rom_map_elem_t i2cslave_module_globals_table[] = {
|
STATIC const mp_rom_map_elem_t i2cperipheral_module_globals_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_i2cslave) },
|
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_i2cperipheral) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_I2CSlave), MP_ROM_PTR(&i2cslave_i2c_slave_type) },
|
{ MP_ROM_QSTR(MP_QSTR_I2CPeripheral), MP_ROM_PTR(&i2cperipheral_i2c_peripheral_type) },
|
||||||
};
|
};
|
||||||
|
|
||||||
STATIC MP_DEFINE_CONST_DICT(i2cslave_module_globals, i2cslave_module_globals_table);
|
STATIC MP_DEFINE_CONST_DICT(i2cperipheral_module_globals, i2cperipheral_module_globals_table);
|
||||||
|
|
||||||
const mp_obj_module_t i2cslave_module = {
|
const mp_obj_module_t i2cperipheral_module = {
|
||||||
.base = { &mp_type_module },
|
.base = { &mp_type_module },
|
||||||
.globals = (mp_obj_dict_t*)&i2cslave_module_globals,
|
.globals = (mp_obj_dict_t*)&i2cperipheral_module_globals,
|
||||||
};
|
};
|
@ -1,15 +0,0 @@
|
|||||||
# test hal errors
|
|
||||||
|
|
||||||
import pyb
|
|
||||||
|
|
||||||
i2c = pyb.I2C(2, pyb.I2C.MASTER)
|
|
||||||
try:
|
|
||||||
i2c.recv(1, 1)
|
|
||||||
except OSError as e:
|
|
||||||
print(repr(e))
|
|
||||||
|
|
||||||
can = pyb.CAN(1, pyb.CAN.NORMAL)
|
|
||||||
try:
|
|
||||||
can.send('1', 1, timeout=50)
|
|
||||||
except OSError as e:
|
|
||||||
print(repr(e))
|
|
@ -1,32 +0,0 @@
|
|||||||
import pyb
|
|
||||||
from pyb import I2C
|
|
||||||
|
|
||||||
# test we can correctly create by id or name
|
|
||||||
for bus in (-1, 0, 1, 2, 3, "X", "Y", "Z"):
|
|
||||||
try:
|
|
||||||
I2C(bus)
|
|
||||||
print("I2C", bus)
|
|
||||||
except ValueError:
|
|
||||||
print("ValueError", bus)
|
|
||||||
|
|
||||||
i2c = I2C(1)
|
|
||||||
|
|
||||||
i2c.init(I2C.MASTER, baudrate=400000)
|
|
||||||
print(i2c.scan())
|
|
||||||
i2c.deinit()
|
|
||||||
|
|
||||||
# use accelerometer to test i2c bus
|
|
||||||
|
|
||||||
accel_addr = 76
|
|
||||||
|
|
||||||
pyb.Accel() # this will init the MMA for us
|
|
||||||
i2c.init(I2C.MASTER, baudrate=400000)
|
|
||||||
|
|
||||||
print(i2c.scan())
|
|
||||||
print(i2c.is_ready(accel_addr))
|
|
||||||
|
|
||||||
print(i2c.mem_read(1, accel_addr, 7, timeout=500))
|
|
||||||
i2c.mem_write(0, accel_addr, 0, timeout=500)
|
|
||||||
|
|
||||||
i2c.send(7, addr=accel_addr)
|
|
||||||
i2c.recv(1, addr=accel_addr)
|
|
@ -1,12 +0,0 @@
|
|||||||
ValueError -1
|
|
||||||
ValueError 0
|
|
||||||
I2C 1
|
|
||||||
I2C 2
|
|
||||||
ValueError 3
|
|
||||||
I2C X
|
|
||||||
I2C Y
|
|
||||||
ValueError Z
|
|
||||||
[]
|
|
||||||
[76]
|
|
||||||
True
|
|
||||||
b'\x01'
|
|
@ -1,50 +0,0 @@
|
|||||||
# test I2C errors, with polling (disabled irqs) and DMA
|
|
||||||
|
|
||||||
import pyb
|
|
||||||
from pyb import I2C
|
|
||||||
|
|
||||||
# init accelerometer
|
|
||||||
pyb.Accel()
|
|
||||||
|
|
||||||
# get I2C bus
|
|
||||||
i2c = I2C(1, I2C.MASTER, dma=True)
|
|
||||||
|
|
||||||
# test polling mem_read
|
|
||||||
pyb.disable_irq()
|
|
||||||
i2c.mem_read(1, 76, 0x0a) # should succeed
|
|
||||||
pyb.enable_irq()
|
|
||||||
try:
|
|
||||||
pyb.disable_irq()
|
|
||||||
i2c.mem_read(1, 77, 0x0a) # should fail
|
|
||||||
except OSError as e:
|
|
||||||
pyb.enable_irq()
|
|
||||||
print(repr(e))
|
|
||||||
i2c.mem_read(1, 76, 0x0a) # should succeed
|
|
||||||
|
|
||||||
# test polling mem_write
|
|
||||||
pyb.disable_irq()
|
|
||||||
i2c.mem_write(1, 76, 0x0a) # should succeed
|
|
||||||
pyb.enable_irq()
|
|
||||||
try:
|
|
||||||
pyb.disable_irq()
|
|
||||||
i2c.mem_write(1, 77, 0x0a) # should fail
|
|
||||||
except OSError as e:
|
|
||||||
pyb.enable_irq()
|
|
||||||
print(repr(e))
|
|
||||||
i2c.mem_write(1, 76, 0x0a) # should succeed
|
|
||||||
|
|
||||||
# test DMA mem_read
|
|
||||||
i2c.mem_read(1, 76, 0x0a) # should succeed
|
|
||||||
try:
|
|
||||||
i2c.mem_read(1, 77, 0x0a) # should fail
|
|
||||||
except OSError as e:
|
|
||||||
print(repr(e))
|
|
||||||
i2c.mem_read(1, 76, 0x0a) # should succeed
|
|
||||||
|
|
||||||
# test DMA mem_write
|
|
||||||
i2c.mem_write(1, 76, 0x0a) # should succeed
|
|
||||||
try:
|
|
||||||
i2c.mem_write(1, 77, 0x0a) # should fail
|
|
||||||
except OSError as e:
|
|
||||||
print(repr(e))
|
|
||||||
i2c.mem_write(1, 76, 0x0a) # should succeed
|
|
@ -1,33 +0,0 @@
|
|||||||
from pyb import SPI
|
|
||||||
|
|
||||||
# test we can correctly create by id or name
|
|
||||||
for bus in (-1, 0, 1, 2, 3, "X", "Y", "Z"):
|
|
||||||
try:
|
|
||||||
SPI(bus)
|
|
||||||
print("SPI", bus)
|
|
||||||
except ValueError:
|
|
||||||
print("ValueError", bus)
|
|
||||||
|
|
||||||
spi = SPI(1)
|
|
||||||
print(spi)
|
|
||||||
|
|
||||||
spi = SPI(1, SPI.MASTER)
|
|
||||||
spi = SPI(1, SPI.MASTER, baudrate=500000)
|
|
||||||
spi = SPI(1, SPI.MASTER, 500000, polarity=1, phase=0, bits=8, firstbit=SPI.MSB, ti=False, crc=None)
|
|
||||||
print(spi)
|
|
||||||
|
|
||||||
spi.init(SPI.SLAVE, phase=1)
|
|
||||||
print(spi)
|
|
||||||
try:
|
|
||||||
# need to flush input before we get an error (error is what we want to test)
|
|
||||||
for i in range(10):
|
|
||||||
spi.recv(1, timeout=100)
|
|
||||||
except OSError:
|
|
||||||
print("OSError")
|
|
||||||
|
|
||||||
spi.init(SPI.MASTER)
|
|
||||||
spi.send(1, timeout=100)
|
|
||||||
print(spi.recv(1, timeout=100))
|
|
||||||
print(spi.send_recv(1, timeout=100))
|
|
||||||
|
|
||||||
spi.deinit()
|
|
@ -1,14 +0,0 @@
|
|||||||
ValueError -1
|
|
||||||
ValueError 0
|
|
||||||
SPI 1
|
|
||||||
SPI 2
|
|
||||||
ValueError 3
|
|
||||||
SPI X
|
|
||||||
SPI Y
|
|
||||||
ValueError Z
|
|
||||||
SPI(1)
|
|
||||||
SPI(1, SPI.MASTER, baudrate=328125, prescaler=256, polarity=1, phase=0, bits=8)
|
|
||||||
SPI(1, SPI.SLAVE, polarity=1, phase=1, bits=8)
|
|
||||||
OSError
|
|
||||||
b'\xff'
|
|
||||||
b'\xff'
|
|
@ -87,28 +87,32 @@ def run_micropython(pyb, args, test_file, is_special=False):
|
|||||||
def get(required=False):
|
def get(required=False):
|
||||||
rv = b''
|
rv = b''
|
||||||
while True:
|
while True:
|
||||||
ready = select.select([master], [], [], 0.02)
|
ready = select.select([emulator], [], [], 0.02)
|
||||||
if ready[0] == [master]:
|
if ready[0] == [emulator]:
|
||||||
rv += os.read(master, 1024)
|
rv += os.read(emulator, 1024)
|
||||||
else:
|
else:
|
||||||
if not required or rv:
|
if not required or rv:
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
def send_get(what):
|
def send_get(what):
|
||||||
os.write(master, what)
|
os.write(emulator, what)
|
||||||
return get()
|
return get()
|
||||||
|
|
||||||
with open(test_file, 'rb') as f:
|
with open(test_file, 'rb') as f:
|
||||||
# instead of: output_mupy = subprocess.check_output(args, stdin=f)
|
# instead of: output_mupy = subprocess.check_output(args, stdin=f)
|
||||||
master, slave = pty.openpty()
|
# openpty returns two read/write file descriptors. The first one is
|
||||||
p = subprocess.Popen(args, stdin=slave, stdout=slave,
|
# used by the program which provides the virtual
|
||||||
|
# terminal service, and the second one is used by the
|
||||||
|
# subprogram which requires a tty to work.
|
||||||
|
emulator, subterminal = pty.openpty()
|
||||||
|
p = subprocess.Popen(args, stdin=subterminal, stdout=subterminal,
|
||||||
stderr=subprocess.STDOUT, bufsize=0)
|
stderr=subprocess.STDOUT, bufsize=0)
|
||||||
banner = get(True)
|
banner = get(True)
|
||||||
output_mupy = banner + b''.join(send_get(line) for line in f)
|
output_mupy = banner + b''.join(send_get(line) for line in f)
|
||||||
send_get(b'\x04') # exit the REPL, so coverage info is saved
|
send_get(b'\x04') # exit the REPL, so coverage info is saved
|
||||||
p.kill()
|
p.kill()
|
||||||
os.close(master)
|
os.close(emulator)
|
||||||
os.close(slave)
|
os.close(subterminal)
|
||||||
else:
|
else:
|
||||||
output_mupy = subprocess.check_output(args + [test_file], stderr=subprocess.STDOUT)
|
output_mupy = subprocess.check_output(args + [test_file], stderr=subprocess.STDOUT)
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
|
@ -1,175 +0,0 @@
|
|||||||
'''
|
|
||||||
I2C test for the CC3200 based boards.
|
|
||||||
A MPU-9150 sensor must be connected to the I2C bus.
|
|
||||||
'''
|
|
||||||
|
|
||||||
from machine import I2C
|
|
||||||
import os
|
|
||||||
import time
|
|
||||||
|
|
||||||
mch = os.uname().machine
|
|
||||||
if 'LaunchPad' in mch:
|
|
||||||
i2c_pins = ('GP11', 'GP10')
|
|
||||||
elif 'WiPy' in mch:
|
|
||||||
i2c_pins = ('GP15', 'GP10')
|
|
||||||
else:
|
|
||||||
raise Exception('Board not supported!')
|
|
||||||
|
|
||||||
i2c = I2C(0, I2C.MASTER, baudrate=400000)
|
|
||||||
# try initing without the peripheral id
|
|
||||||
i2c = I2C()
|
|
||||||
print(i2c)
|
|
||||||
i2c = I2C(mode=I2C.MASTER, baudrate=50000, pins=i2c_pins)
|
|
||||||
print(i2c)
|
|
||||||
|
|
||||||
i2c = I2C(0, I2C.MASTER, baudrate=100000)
|
|
||||||
print(i2c)
|
|
||||||
i2c = I2C(0, mode=I2C.MASTER, baudrate=400000)
|
|
||||||
print(i2c)
|
|
||||||
i2c = I2C(0, mode=I2C.MASTER, baudrate=400000, pins=i2c_pins)
|
|
||||||
print(i2c)
|
|
||||||
|
|
||||||
addr = i2c.scan()[0]
|
|
||||||
print(addr)
|
|
||||||
|
|
||||||
reg = bytearray(1)
|
|
||||||
reg2 = bytearray(2)
|
|
||||||
reg2_r = bytearray(2)
|
|
||||||
|
|
||||||
# reset the sensor
|
|
||||||
reg[0] |= 0x80
|
|
||||||
print(1 == i2c.writeto_mem(addr, 107, reg))
|
|
||||||
time.sleep_ms(100) # wait for the sensor to reset...
|
|
||||||
|
|
||||||
print(1 == i2c.readfrom_mem_into(addr, 107, reg)) # read the power management register 1
|
|
||||||
print(0x40 == reg[0])
|
|
||||||
|
|
||||||
# now just read one byte
|
|
||||||
data = i2c.readfrom_mem(addr, 117, 1) # read the "who am I?" register
|
|
||||||
print(0x68 == data[0])
|
|
||||||
print(len(data) == 1)
|
|
||||||
print(1 == i2c.readfrom_mem_into(addr, 117, reg)) # read the "who am I?" register again
|
|
||||||
print(0x68 == reg[0])
|
|
||||||
|
|
||||||
# now try reading two bytes
|
|
||||||
data = i2c.readfrom_mem(addr, 116, 2) # read the "who am I?" register
|
|
||||||
print(0x68 == data[1])
|
|
||||||
print(data == b'\x00\x68')
|
|
||||||
print(len(data) == 2)
|
|
||||||
print(2 == i2c.readfrom_mem_into(addr, 116, reg2)) # read the "who am I?" register again
|
|
||||||
print(0x68 == reg2[1])
|
|
||||||
print(reg2 == b'\x00\x68')
|
|
||||||
|
|
||||||
print(1 == i2c.readfrom_mem_into(addr, 107, reg)) # read the power management register 1
|
|
||||||
print(0x40 == reg[0])
|
|
||||||
# clear the sleep bit
|
|
||||||
reg[0] = 0
|
|
||||||
print(1 == i2c.writeto_mem(addr, 107, reg))
|
|
||||||
# read it back
|
|
||||||
i2c.readfrom_mem_into(addr, 107, reg)
|
|
||||||
print(0 == reg[0])
|
|
||||||
|
|
||||||
# set the sleep bit
|
|
||||||
reg[0] = 0x40
|
|
||||||
print(1 == i2c.writeto_mem(addr, 107, reg))
|
|
||||||
# read it back
|
|
||||||
i2c.readfrom_mem_into(addr, 107, reg)
|
|
||||||
print(0x40 == reg[0])
|
|
||||||
|
|
||||||
# reset the sensor
|
|
||||||
reg[0] |= 0x80
|
|
||||||
print(1 == i2c.writeto_mem(addr, 107, reg))
|
|
||||||
time.sleep_ms(100) # wait for the sensor to reset...
|
|
||||||
|
|
||||||
# now read and write two register at a time
|
|
||||||
print(2 == i2c.readfrom_mem_into(addr, 107, reg2))
|
|
||||||
print(0x40 == reg2[0])
|
|
||||||
print(0x00 == reg2[1])
|
|
||||||
# clear the sleep bit
|
|
||||||
reg2[0] = 0
|
|
||||||
# set some other bits
|
|
||||||
reg2[1] |= 0x03
|
|
||||||
print(2 == i2c.writeto_mem(addr, 107, reg2))
|
|
||||||
# read it back
|
|
||||||
i2c.readfrom_mem_into(addr, 107, reg2_r)
|
|
||||||
print(reg2 == reg2_r)
|
|
||||||
|
|
||||||
# reset the sensor
|
|
||||||
reg[0] = 0x80
|
|
||||||
print(1 == i2c.writeto_mem(addr, 107, reg))
|
|
||||||
time.sleep_ms(100) # wait for the sensor to reset...
|
|
||||||
|
|
||||||
# try some raw read and writes
|
|
||||||
reg[0] = 117 # register address
|
|
||||||
print(1 == i2c.writeto(addr, reg, stop=False)) # just write the register address
|
|
||||||
# now read
|
|
||||||
print(1 == i2c.readfrom_into(addr, reg))
|
|
||||||
print(reg[0] == 0x68)
|
|
||||||
reg[0] = 117 # register address
|
|
||||||
print(1 == i2c.writeto(addr, reg, stop=False)) # just write the register address
|
|
||||||
# now read
|
|
||||||
print(0x68 == i2c.readfrom(addr, 1)[0])
|
|
||||||
|
|
||||||
i2c.readfrom_mem_into(addr, 107, reg2)
|
|
||||||
print(0x40 == reg2[0])
|
|
||||||
print(0x00 == reg2[1])
|
|
||||||
|
|
||||||
reg2[0] = 107 # register address
|
|
||||||
reg2[1] = 0
|
|
||||||
print(2 == i2c.writeto(addr, reg2, stop=True)) # write the register address and the data
|
|
||||||
i2c.readfrom_mem_into(addr, 107, reg) # check it back
|
|
||||||
print(reg[0] == 0)
|
|
||||||
|
|
||||||
# check for memory leaks...
|
|
||||||
for i in range (0, 1000):
|
|
||||||
i2c = I2C(0, I2C.MASTER, baudrate=100000)
|
|
||||||
|
|
||||||
# test deinit
|
|
||||||
i2c = I2C(0, I2C.MASTER, baudrate=100000)
|
|
||||||
i2c.deinit()
|
|
||||||
print(i2c)
|
|
||||||
|
|
||||||
# next ones should raise
|
|
||||||
try:
|
|
||||||
i2c.scan()
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
i2c.readfrom(addr, 1)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
i2c.readfrom_into(addr, reg)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
i2c.readfrom_mem_into(addr, 107, reg)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
i2c.writeto(addr, reg, stop=False)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
i2c.writeto_mem(addr, 107, reg)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
i2c.readfrom_mem(addr, 116, 2)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
I2C(1, I2C.MASTER, baudrate=100000)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
# reinitialization must work
|
|
||||||
i2c.init(baudrate=400000)
|
|
||||||
print(i2c)
|
|
@ -1,51 +0,0 @@
|
|||||||
I2C(0, I2C.MASTER, baudrate=100000)
|
|
||||||
I2C(0, I2C.MASTER, baudrate=50000)
|
|
||||||
I2C(0, I2C.MASTER, baudrate=100000)
|
|
||||||
I2C(0, I2C.MASTER, baudrate=400000)
|
|
||||||
I2C(0, I2C.MASTER, baudrate=400000)
|
|
||||||
104
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
I2C(0)
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
I2C(0, I2C.MASTER, baudrate=400000)
|
|
@ -1,147 +0,0 @@
|
|||||||
'''
|
|
||||||
SPI test for the CC3200 based boards.
|
|
||||||
'''
|
|
||||||
|
|
||||||
from machine import SPI
|
|
||||||
import os
|
|
||||||
|
|
||||||
mch = os.uname().machine
|
|
||||||
if 'LaunchPad' in mch:
|
|
||||||
spi_pins = ('GP14', 'GP16', 'GP30')
|
|
||||||
elif 'WiPy' in mch:
|
|
||||||
spi_pins = ('GP14', 'GP16', 'GP30')
|
|
||||||
else:
|
|
||||||
raise Exception('Board not supported!')
|
|
||||||
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=2000000, polarity=0, phase=0, firstbit=SPI.MSB, pins=spi_pins)
|
|
||||||
print(spi)
|
|
||||||
spi = SPI(baudrate=5000000)
|
|
||||||
print(spi)
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=200000, bits=16, polarity=0, phase=0)
|
|
||||||
print(spi)
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=0, phase=1)
|
|
||||||
print(spi)
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=5000000, bits=32, polarity=1, phase=0)
|
|
||||||
print(spi)
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=1, phase=1)
|
|
||||||
print(spi)
|
|
||||||
spi.init(baudrate=20000000, polarity=0, phase=0)
|
|
||||||
print(spi)
|
|
||||||
spi=SPI()
|
|
||||||
print(spi)
|
|
||||||
SPI(mode=SPI.MASTER)
|
|
||||||
SPI(mode=SPI.MASTER, pins=spi_pins)
|
|
||||||
SPI(id=0, mode=SPI.MASTER, polarity=0, phase=0, pins=('GP14', 'GP16', 'GP15'))
|
|
||||||
SPI(0, SPI.MASTER, polarity=0, phase=0, pins=('GP31', 'GP16', 'GP15'))
|
|
||||||
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=0, phase=0, pins=spi_pins)
|
|
||||||
print(spi.write('123456') == 6)
|
|
||||||
buffer_r = bytearray(10)
|
|
||||||
print(spi.readinto(buffer_r) == 10)
|
|
||||||
print(spi.readinto(buffer_r, write=0x55) == 10)
|
|
||||||
read = spi.read(10)
|
|
||||||
print(len(read) == 10)
|
|
||||||
read = spi.read(10, write=0xFF)
|
|
||||||
print(len(read) == 10)
|
|
||||||
buffer_w = bytearray([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
|
|
||||||
print(spi.write_readinto(buffer_w, buffer_r) == 10)
|
|
||||||
print(buffer_w == buffer_r)
|
|
||||||
|
|
||||||
# test all polaritiy and phase combinations
|
|
||||||
spi.init(polarity=1, phase=0, pins=None)
|
|
||||||
buffer_r = bytearray(10)
|
|
||||||
spi.write_readinto(buffer_w, buffer_r)
|
|
||||||
print(buffer_w == buffer_r)
|
|
||||||
|
|
||||||
spi.init(polarity=1, phase=1, pins=None)
|
|
||||||
buffer_r = bytearray(10)
|
|
||||||
spi.write_readinto(buffer_w, buffer_r)
|
|
||||||
print(buffer_w == buffer_r)
|
|
||||||
|
|
||||||
spi.init(polarity=0, phase=1, pins=None)
|
|
||||||
buffer_r = bytearray(10)
|
|
||||||
spi.write_readinto(buffer_w, buffer_r)
|
|
||||||
print(buffer_w == buffer_r)
|
|
||||||
|
|
||||||
# test 16 and 32 bit transfers
|
|
||||||
buffer_w = bytearray([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2])
|
|
||||||
buffer_r = bytearray(12)
|
|
||||||
spi.init(SPI.MASTER, baudrate=10000000, bits=16, polarity=0, phase=0, pins=None)
|
|
||||||
print(spi.write_readinto(buffer_w, buffer_r) == 12)
|
|
||||||
print(buffer_w == buffer_r)
|
|
||||||
|
|
||||||
buffer_r = bytearray(12)
|
|
||||||
spi.init(SPI.MASTER, baudrate=10000000, bits=32, polarity=0, phase=0, pins=None)
|
|
||||||
print(spi.write_readinto(buffer_w, buffer_r) == 12)
|
|
||||||
print(buffer_w == buffer_r)
|
|
||||||
|
|
||||||
# check for memory leaks...
|
|
||||||
for i in range (0, 1000):
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=1000000)
|
|
||||||
|
|
||||||
# test deinit
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=1000000)
|
|
||||||
spi.deinit()
|
|
||||||
print(spi)
|
|
||||||
|
|
||||||
spi = SPI(0, SPI.MASTER, baudrate=1000000)
|
|
||||||
# next ones must fail
|
|
||||||
try:
|
|
||||||
spi = SPI(0, 10, baudrate=10000000, polarity=0, phase=0)
|
|
||||||
except:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi = SPI(0, mode=SPI.MASTER, baudrate=10000000, polarity=1, phase=2)
|
|
||||||
except:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi = SPI(1, mode=SPI.MASTER, baudrate=10000000, polarity=1, phase=1)
|
|
||||||
except:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=2, phase=0)
|
|
||||||
except:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=2, phase=0, firstbit=2)
|
|
||||||
except:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=2, phase=0, pins=('GP1', 'GP2'))
|
|
||||||
except:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=0, phase=0, bits=9)
|
|
||||||
except:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
spi.deinit()
|
|
||||||
try:
|
|
||||||
spi.read(15)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi.spi.readinto(buffer_r)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi.spi.write('abc')
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
try:
|
|
||||||
spi.write_readinto(buffer_w, buffer_r)
|
|
||||||
except Exception:
|
|
||||||
print("Exception")
|
|
||||||
|
|
||||||
# reinitialization must work
|
|
||||||
spi.init(baudrate=500000)
|
|
||||||
print(spi)
|
|
@ -1,35 +0,0 @@
|
|||||||
SPI(0, SPI.MASTER, baudrate=2000000, bits=8, polarity=0, phase=0, firstbit=SPI.MSB)
|
|
||||||
SPI(0, SPI.MASTER, baudrate=5000000, bits=8, polarity=0, phase=0, firstbit=SPI.MSB)
|
|
||||||
SPI(0, SPI.MASTER, baudrate=200000, bits=16, polarity=0, phase=0, firstbit=SPI.MSB)
|
|
||||||
SPI(0, SPI.MASTER, baudrate=10000000, bits=8, polarity=0, phase=1, firstbit=SPI.MSB)
|
|
||||||
SPI(0, SPI.MASTER, baudrate=5000000, bits=32, polarity=1, phase=0, firstbit=SPI.MSB)
|
|
||||||
SPI(0, SPI.MASTER, baudrate=10000000, bits=8, polarity=1, phase=1, firstbit=SPI.MSB)
|
|
||||||
SPI(0, SPI.MASTER, baudrate=20000000, bits=8, polarity=0, phase=0, firstbit=SPI.MSB)
|
|
||||||
SPI(0, SPI.MASTER, baudrate=1000000, bits=8, polarity=0, phase=0, firstbit=SPI.MSB)
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
True
|
|
||||||
SPI(0)
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
Exception
|
|
||||||
SPI(0, SPI.MASTER, baudrate=500000, bits=8, polarity=0, phase=0, firstbit=SPI.MSB)
|
|
@ -90,9 +90,9 @@ else
|
|||||||
last_rev="v1.0"
|
last_rev="v1.0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# get a list of hashes between last revision (exclusive) and master
|
# get a list of hashes between last revision (exclusive) and main
|
||||||
hashes=$(git log --format=format:"%H" --reverse ${last_rev}..master)
|
hashes=$(git log --format=format:"%H" --reverse ${last_rev}..main)
|
||||||
#hashes=$(git log --format=format:"%H" --reverse ${last_rev}..master | $AWK '{if (NR % 10 == 0) print $0}') # do every 10th one
|
#hashes=$(git log --format=format:"%H" --reverse ${last_rev}..main | $AWK '{if (NR % 10 == 0) print $0}') # do every 10th one
|
||||||
|
|
||||||
for hash in $hashes; do
|
for hash in $hashes; do
|
||||||
|
|
||||||
@ -182,6 +182,6 @@ EOF
|
|||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# checkout master and cleanup
|
# checkout main and cleanup
|
||||||
git checkout master
|
git checkout main
|
||||||
$RM $pystoneavg
|
$RM $pystoneavg
|
||||||
|
@ -191,7 +191,7 @@ class ProcessToSerial:
|
|||||||
|
|
||||||
|
|
||||||
class ProcessPtyToTerminal:
|
class ProcessPtyToTerminal:
|
||||||
"""Execute a process which creates a PTY and prints slave PTY as
|
"""Execute a process which creates a PTY and prints secondary PTY as
|
||||||
first line of its output, and emulate serial connection using
|
first line of its output, and emulate serial connection using
|
||||||
this PTY."""
|
this PTY."""
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user