summaryrefslogtreecommitdiffstatshomepage
path: root/cc3200
diff options
context:
space:
mode:
authorDaniel Campora <daniel@wipy.io>2015-06-28 12:53:37 +0200
committerDaniel Campora <daniel@wipy.io>2015-06-28 14:14:22 +0200
commit813b581127ee78217a08cbb35c23baf5941f6506 (patch)
tree9089cf0cde365a6023a3ec332804134ecf6c9f3f /cc3200
parent778413168b44ae606010b2439ae2f23c83df3935 (diff)
downloadmicropython-813b581127ee78217a08cbb35c23baf5941f6506.tar.gz
micropython-813b581127ee78217a08cbb35c23baf5941f6506.zip
cc3200: Add `Pin.name()` method.
Diffstat (limited to 'cc3200')
-rw-r--r--cc3200/misc/pin_named_pins.c14
-rw-r--r--cc3200/mods/pybpin.c14
-rw-r--r--cc3200/qstrdefsport.h1
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)