Moved init functions to helper python library

This commit is contained in:
gamblor21 2022-01-17 16:13:27 -06:00
parent bb8ad7f611
commit cf2c8eeec4
3 changed files with 0 additions and 51 deletions

View File

@ -35,12 +35,6 @@
#include "shared-bindings/busio/I2C.h"
#include "shared-bindings/is31fl3741/IS31FL3741.h"
//| """Low-level is31fl3741 implementation
//|
//| The `is31fl3741_write` module contains a helper method to write out bytes in
//| over the I2C bus."""
//|
//| def is31fl3741_write(i2c: busio.I2C, addr: int, mapping: Tuple[int, ...], buf: ReadableBuffer) -> None:
//| """Write buf out on the given I2C bus.
//|
@ -79,33 +73,9 @@ STATIC mp_obj_t is31fl3741_is31fl3741_write(size_t n_args, const mp_obj_t *pos_a
}
MP_DEFINE_CONST_FUN_OBJ_KW(is31fl3741_is31fl3741_write_obj, 0, is31fl3741_is31fl3741_write);
//| def is31fl3741_init(i2c: busio.I2c, addr: int) -> None:
//| """Initialize the IS31FL3741 device.
//|
//| :param ~busio.I2C i2c: the I2C bus to output with
//| :param ~int addr: the I2C address of the IS31FL3741 device"""
//| ...
STATIC mp_obj_t is31fl3741_is31fl3741_init(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_i2c, ARG_addr };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_i2c, MP_ARG_KW_ONLY | MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_addr, MP_ARG_KW_ONLY | MP_ARG_INT, {.u_int = 0x30 } },
};
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);
mp_obj_t i2c = mp_arg_validate_type(args[ARG_i2c].u_obj, &busio_i2c_type, MP_QSTR_i2c_bus);
common_hal_is31fl3741_init(i2c, args[ARG_addr].u_int);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_KW(is31fl3741_is31fl3741_init_obj, 0, is31fl3741_is31fl3741_init);
STATIC const mp_rom_map_elem_t is31fl3741_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_is31fl3741) },
{ MP_ROM_QSTR(MP_QSTR_IS31FL3741), MP_ROM_PTR(&is31fl3741_IS31FL3741_type) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_is31fl3741_init), (mp_obj_t)&is31fl3741_is31fl3741_init_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_is31fl3741_write), (mp_obj_t)&is31fl3741_is31fl3741_write_obj },
};

View File

@ -32,7 +32,6 @@
#include "shared-bindings/busio/I2C.h"
extern void common_hal_is31fl3741_init(busio_i2c_obj_t *i2c, uint8_t addr);
extern void common_hal_is31fl3741_write(busio_i2c_obj_t *i2c, uint8_t addr, const mp_obj_t *mapping, const uint8_t *pixels, size_t numBytes);
void is31fl3741_begin_transaction(busio_i2c_obj_t *i2c);
void is31fl3741_end_transaction(busio_i2c_obj_t *i2c);

View File

@ -42,26 +42,6 @@ void is31fl3741_end_transaction(busio_i2c_obj_t *i2c) {
common_hal_busio_i2c_unlock(i2c);
}
void common_hal_is31fl3741_init(busio_i2c_obj_t *i2c, uint8_t addr) {
is31fl3741_begin_transaction(i2c);
uint8_t command = 0xFC; // device ID
common_hal_busio_i2c_write(i2c, addr, &command, 1, false);
uint8_t data = 0;
common_hal_busio_i2c_read(i2c, addr, &data, 1);
is31fl3741_send_reset(i2c, addr);
is31fl3741_send_enable(i2c, addr);
is31fl3741_set_current(i2c, addr, 0xFF);
// set scale (brightness) to max for all LEDs
for (int i = 0; i < 351; i++) {
is31fl3741_set_led(i2c, addr, i, 0xFF, 2);
}
is31fl3741_end_transaction(i2c);
}
void common_hal_is31fl3741_write(busio_i2c_obj_t *i2c, uint8_t addr, const mp_obj_t *mapping, const uint8_t *pixels, size_t numBytes) {
is31fl3741_begin_transaction(i2c);