mirror of
https://github.com/micropython/micropython.git
synced 2026-01-05 19:50:30 +01:00
samd: Add Pin.board and Pin.cpu classes to Pin.
For compatibility with other ports. Code increase up to ~1250 bytes for SAMD21. The feature is configurable via MICROPY_PY_MACHINE_PIN_BOARD_CPU in case flash memory is tight.
This commit is contained in:
@@ -54,6 +54,23 @@ typedef struct _machine_pin_irq_obj_t {
|
||||
uint8_t pin_id;
|
||||
} machine_pin_irq_obj_t;
|
||||
|
||||
#if MICROPY_PY_MACHINE_PIN_BOARD_CPU
|
||||
// Pin mapping dictionaries
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
machine_pin_cpu_pins_obj_type,
|
||||
MP_QSTR_cpu,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
locals_dict, &machine_pin_cpu_pins_locals_dict
|
||||
);
|
||||
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
machine_pin_board_pins_obj_type,
|
||||
MP_QSTR_board,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
locals_dict, &machine_pin_board_pins_locals_dict
|
||||
);
|
||||
#endif // MICROPY_PY_MACHINE_PIN_BOARD_CPU
|
||||
|
||||
STATIC const mp_irq_methods_t machine_pin_irq_methods;
|
||||
|
||||
bool EIC_occured;
|
||||
@@ -411,6 +428,12 @@ STATIC const mp_rom_map_elem_t machine_pin_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_drive), MP_ROM_PTR(&machine_pin_drive_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_irq), MP_ROM_PTR(&machine_pin_irq_obj) },
|
||||
|
||||
#if MICROPY_PY_MACHINE_PIN_BOARD_CPU
|
||||
// class attributes
|
||||
{ MP_ROM_QSTR(MP_QSTR_board), MP_ROM_PTR(&machine_pin_board_pins_obj_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_cpu), MP_ROM_PTR(&machine_pin_cpu_pins_obj_type) },
|
||||
#endif // MICROPY_PY_MACHINE_PIN_BOARD_CPU
|
||||
|
||||
// class constants
|
||||
{ MP_ROM_QSTR(MP_QSTR_IN), MP_ROM_INT(GPIO_MODE_IN) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_OUT), MP_ROM_INT(GPIO_MODE_OUT) },
|
||||
|
||||
Reference in New Issue
Block a user