diff options
author | Daniel Campora <daniel@wipy.io> | 2015-06-28 12:53:37 +0200 |
---|---|---|
committer | Daniel Campora <daniel@wipy.io> | 2015-06-28 14:14:22 +0200 |
commit | 813b581127ee78217a08cbb35c23baf5941f6506 (patch) | |
tree | 9089cf0cde365a6023a3ec332804134ecf6c9f3f /cc3200 | |
parent | 778413168b44ae606010b2439ae2f23c83df3935 (diff) | |
download | micropython-813b581127ee78217a08cbb35c23baf5941f6506.tar.gz micropython-813b581127ee78217a08cbb35c23baf5941f6506.zip |
cc3200: Add `Pin.name()` method.
Diffstat (limited to 'cc3200')
-rw-r--r-- | cc3200/misc/pin_named_pins.c | 14 | ||||
-rw-r--r-- | cc3200/mods/pybpin.c | 14 | ||||
-rw-r--r-- | cc3200/qstrdefsport.h | 1 |
3 files changed, 27 insertions, 2 deletions
diff --git a/cc3200/misc/pin_named_pins.c b/cc3200/misc/pin_named_pins.c index 66ddc7fdc6..f6c5e8c745 100644 --- a/cc3200/misc/pin_named_pins.c +++ b/cc3200/misc/pin_named_pins.c @@ -30,14 +30,26 @@ #include <string.h> #include "py/mpconfig.h" +#include MICROPY_HAL_H #include "py/obj.h" #include "inc/hw_types.h" #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "pybpin.h" -#include MICROPY_HAL_H +STATIC void pin_named_pins_obj_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) { + pin_named_pins_obj_t *self = self_in; + mp_printf(print, "<Pin.%q>", self->name); +} + +const mp_obj_type_t pin_cpu_pins_obj_type = { + { &mp_type_type }, + .name = MP_QSTR_cpu, + .print = pin_named_pins_obj_print, + .locals_dict = (mp_obj_t)&pin_cpu_pins_locals_dict, +}; + pin_obj_t *pin_find_named_pin(const mp_obj_dict_t *named_pins, mp_obj_t name) { mp_map_t *named_map = mp_obj_dict_get_map((mp_obj_t)named_pins); mp_map_elem_t *named_elem = mp_map_lookup(named_map, name, MP_MAP_LOOKUP); diff --git a/cc3200/mods/pybpin.c b/cc3200/mods/pybpin.c index 248ddafa0d..8efc3cd6ad 100644 --- a/cc3200/mods/pybpin.c +++ b/cc3200/mods/pybpin.c @@ -69,7 +69,7 @@ /// Example callback: /// /// def pincb(pin): -/// print(pin.get_config().name) +/// print(pin.name()) /// /// extint = pyb.Pin('GPIO10', 0, pyb.Pin.INT_RISING, pyb.GPIO.STD_PD, pyb.S2MA) /// extint.callback (mode=pyb.Pin.INT_RISING, handler=pincb) @@ -525,6 +525,14 @@ STATIC mp_obj_t pin_toggle(mp_obj_t self_in) { } STATIC MP_DEFINE_CONST_FUN_OBJ_1(pin_toggle_obj, pin_toggle); +/// \method name() +/// Returns the qstr name of the pin +STATIC mp_obj_t pin_name(mp_obj_t self_in) { + pin_obj_t *self = self_in; + return MP_OBJ_NEW_QSTR(self->name); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_1(pin_name_obj, pin_name); + /// \method info() /// Returns a named tupple with the current configuration of the gpio pin STATIC mp_obj_t pin_info(mp_obj_t self_in) { @@ -681,9 +689,13 @@ STATIC const mp_map_elem_t pin_locals_dict_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_low), (mp_obj_t)&pin_low_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_high), (mp_obj_t)&pin_high_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_toggle), (mp_obj_t)&pin_toggle_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_name), (mp_obj_t)&pin_name_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_info), (mp_obj_t)&pin_info_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_callback), (mp_obj_t)&pin_callback_obj }, + // class attributes + { MP_OBJ_NEW_QSTR(MP_QSTR_cpu), (mp_obj_t)&pin_cpu_pins_obj_type }, + // class constants /// \constant IN - set the pin to input mode /// \constant OUT - set the pin to output mode diff --git a/cc3200/qstrdefsport.h b/cc3200/qstrdefsport.h index 9f50dc7ad0..8ef6c739f4 100644 --- a/cc3200/qstrdefsport.h +++ b/cc3200/qstrdefsport.h @@ -109,6 +109,7 @@ Q(tell) // for Pin class Q(Pin) +Q(cpu) Q(init) Q(value) Q(low) |