Pimoroni I2C: Support machine.Pin args.

pull/1019/head
Phil Howard 2025-03-23 08:03:27 +00:00
rodzic d84a1e3470
commit 26a8ce40f5
1 zmienionych plików z 4 dodań i 4 usunięć

Wyświetl plik

@ -51,8 +51,8 @@ mp_obj_t PimoroniI2C_make_new(const mp_obj_type_t *type, size_t n_args, size_t n
enum { ARG_sda, ARG_scl, ARG_baudrate };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_sda, MP_ARG_INT, {.u_int = I2C_DEFAULT_SDA} },
{ MP_QSTR_scl, MP_ARG_INT, {.u_int = I2C_DEFAULT_SCL} },
{ MP_QSTR_sda, MP_ARG_OBJ, {.u_obj = MP_ROM_INT(I2C_DEFAULT_SDA)} },
{ MP_QSTR_scl, MP_ARG_OBJ, {.u_obj = MP_ROM_INT(I2C_DEFAULT_SCL)} },
{ MP_QSTR_baudrate, MP_ARG_INT, {.u_int = I2C_DEFAULT_BAUDRATE} },
};
@ -61,8 +61,8 @@ mp_obj_t PimoroniI2C_make_new(const mp_obj_type_t *type, size_t n_args, size_t n
mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
// Get I2C bus.
int sda = args[ARG_sda].u_int;
int scl = args[ARG_scl].u_int;
int sda = mp_hal_get_pin_obj(args[ARG_sda].u_obj);
int scl = mp_hal_get_pin_obj(args[ARG_scl].u_obj);
int baud = args[ARG_baudrate].u_int;
int i2c_id = (sda >> 1) & 0b1; // i2c bus for given SDA pin