summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/displayio/Display.c7
-rw-r--r--shared-bindings/displayio/Display.h2
-rw-r--r--shared-bindings/ulab/__init__.rst51
3 files changed, 47 insertions, 13 deletions
diff --git a/shared-bindings/displayio/Display.c b/shared-bindings/displayio/Display.c
index 991c828be..3ef7e74e9 100644
--- a/shared-bindings/displayio/Display.c
+++ b/shared-bindings/displayio/Display.c
@@ -104,9 +104,10 @@
//| :param bool data_as_commands: Treat all init and boundary data as SPI commands. Certain displays require this.
//| :param bool auto_refresh: Automatically refresh the screen
//| :param int native_frames_per_second: Number of display refreshes per second that occur with the given init_sequence.
+//| :param bool backlight_on_high: If True, pulling the backlight pin high turns the backlight on.
//|
STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
- enum { ARG_display_bus, ARG_init_sequence, ARG_width, ARG_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_color_depth, ARG_grayscale, ARG_pixels_in_byte_share_row, ARG_bytes_per_cell, ARG_reverse_pixels_in_byte, ARG_set_column_command, ARG_set_row_command, ARG_write_ram_command, ARG_set_vertical_scroll, ARG_backlight_pin, ARG_brightness_command, ARG_brightness, ARG_auto_brightness, ARG_single_byte_bounds, ARG_data_as_commands, ARG_auto_refresh, ARG_native_frames_per_second };
+ enum { ARG_display_bus, ARG_init_sequence, ARG_width, ARG_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_color_depth, ARG_grayscale, ARG_pixels_in_byte_share_row, ARG_bytes_per_cell, ARG_reverse_pixels_in_byte, ARG_set_column_command, ARG_set_row_command, ARG_write_ram_command, ARG_set_vertical_scroll, ARG_backlight_pin, ARG_brightness_command, ARG_brightness, ARG_auto_brightness, ARG_single_byte_bounds, ARG_data_as_commands, ARG_auto_refresh, ARG_native_frames_per_second, ARG_backlight_on_high };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_display_bus, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_init_sequence, MP_ARG_REQUIRED | MP_ARG_OBJ },
@@ -132,6 +133,7 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
{ MP_QSTR_data_as_commands, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} },
{ MP_QSTR_auto_refresh, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = true} },
{ MP_QSTR_native_frames_per_second, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 60} },
+ { MP_QSTR_backlight_on_high, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = true} },
};
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);
@@ -178,7 +180,8 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
args[ARG_single_byte_bounds].u_bool,
args[ARG_data_as_commands].u_bool,
args[ARG_auto_refresh].u_bool,
- args[ARG_native_frames_per_second].u_int
+ args[ARG_native_frames_per_second].u_int,
+ args[ARG_backlight_on_high].u_bool
);
return self;
diff --git a/shared-bindings/displayio/Display.h b/shared-bindings/displayio/Display.h
index b82a68ebe..8c2e20262 100644
--- a/shared-bindings/displayio/Display.h
+++ b/shared-bindings/displayio/Display.h
@@ -45,7 +45,7 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self,
uint8_t set_column_command, uint8_t set_row_command, uint8_t write_ram_command, uint8_t set_vertical_scroll,
uint8_t* init_sequence, uint16_t init_sequence_len, const mcu_pin_obj_t* backlight_pin, uint16_t brightness_command,
mp_float_t brightness, bool auto_brightness,
- bool single_byte_bounds, bool data_as_commands, bool auto_refresh, uint16_t native_frames_per_second);
+ bool single_byte_bounds, bool data_as_commands, bool auto_refresh, uint16_t native_frames_per_second, bool backlight_on_high);
bool common_hal_displayio_display_show(displayio_display_obj_t* self,
displayio_group_t* root_group);
diff --git a/shared-bindings/ulab/__init__.rst b/shared-bindings/ulab/__init__.rst
index b2933be79..1379e56f3 100644
--- a/shared-bindings/ulab/__init__.rst
+++ b/shared-bindings/ulab/__init__.rst
@@ -33,9 +33,13 @@ ulab.array -- 1- and 2- dimensional array
:param sequence values: Sequence giving the initial content of the array.
:param dtype: The type of array values, ``int8``, ``uint8``, ``int16``, ``uint16``, or ``float``
- The `values` sequence can either be a sequence of numbers (in which case a
- 1-dimensional array is created), or a sequence where each subsequence has
- the same length (in which case a 2-dimensional array is created).
+ The `values` sequence can either be another ~ulab.array, sequence of numbers
+ (in which case a 1-dimensional array is created), or a sequence where each
+ subsequence has the same length (in which case a 2-dimensional array is
+ created).
+
+ Passing a ~ulab.array and a different dtype can be used to convert an array
+ from one dtype to another.
In many cases, it is more convenient to create an array from a function
like `zeros` or `linspace`.
@@ -209,9 +213,20 @@ much more efficient than expressing the same operation as a Python loop.
Computes the inverse hyperbolic sine function
+.. method:: around(a, \*, decimals)
+
+ Returns a new float array in which each element is rounded to
+ ``decimals`` places.
+
.. method:: atan
- Computes the inverse tangent function
+ Computes the inverse tangent function; the return values are in the
+ range [-pi/2,pi/2].
+
+.. method:: atan2(y,x)
+
+ Computes the inverse tangent function of y/x; the return values are in
+ the range [-pi, pi].
.. method:: atanh
@@ -290,6 +305,14 @@ much more efficient than expressing the same operation as a Python loop.
.. module:: ulab.linalg
+.. method:: cholesky(A)
+
+ :param ~ulab.array A: a positive definite, symmetric square matrix
+ :return ~ulab.array L: a square root matrix in the lower triangular form
+ :raises ValueError: If the input does not fulfill the necessary conditions
+
+ The returned matrix satisfies the equation m=LL*
+
.. method:: det
:param: m, a square matrix
@@ -360,6 +383,9 @@ much more efficient than expressing the same operation as a Python loop.
Perform a Fast Fourier Transform from the time domain into the frequency domain
+ See also ~ulab.extras.spectrum, which computes the magnitude of the fft,
+ rather than separately returning its real and imaginary parts.
+
.. method:: ifft(r, c=None)
:param ulab.array r: A 1-dimension array of values whose size is a power of 2
@@ -368,12 +394,6 @@ much more efficient than expressing the same operation as a Python loop.
Perform an Inverse Fast Fourier Transform from the frequeny domain into the time domain
-.. method:: spectrum(r):
-
- :param ulab.array r: A 1-dimension array of values whose size is a power of 2
-
- Computes the spectrum of the input signal. This is the absolute value of the (complex-valued) fft of the signal.
-
:mod:`ulab.numerical` --- Numerical and Statistical functions
=============================================================
@@ -448,3 +468,14 @@ operate over the flattened array (None), rows (0), or columns (1).
.. method:: polyval(p, x)
Evaluate the polynomial p at the points x. x must be an array.
+
+:mod:`ulab.extras` --- Additional functions not in numpy
+========================================================
+
+.. method:: spectrum(r):
+
+ :param ulab.array r: A 1-dimension array of values whose size is a power of 2
+
+ Computes the spectrum of the input signal. This is the absolute value of the (complex-valued) fft of the signal.
+
+ This function is similar to scipy's ``scipy.signal.spectrogram``.