summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--esp8266/modpyb.h9
-rw-r--r--esp8266/modpybpin.c16
2 files changed, 15 insertions, 10 deletions
diff --git a/esp8266/modpyb.h b/esp8266/modpyb.h
index e4eaacbb28..095bc019b8 100644
--- a/esp8266/modpyb.h
+++ b/esp8266/modpyb.h
@@ -2,6 +2,15 @@ extern const mp_obj_type_t pyb_pin_type;
extern const mp_obj_type_t pyb_adc_type;
extern const mp_obj_type_t pyb_rtc_type;
+typedef struct _pyb_pin_obj_t {
+ mp_obj_base_t base;
+ uint16_t pin_id;
+ uint16_t phys_port;
+ uint32_t periph;
+ uint16_t func;
+} pyb_pin_obj_t;
+
uint mp_obj_get_pin(mp_obj_t pin_in);
+pyb_pin_obj_t *mp_obj_get_pin_obj(mp_obj_t pin_in);
int pin_get(uint pin);
void pin_set(uint pin, int value);
diff --git a/esp8266/modpybpin.c b/esp8266/modpybpin.c
index 90c4a4aeba..63ba410849 100644
--- a/esp8266/modpybpin.c
+++ b/esp8266/modpybpin.c
@@ -44,14 +44,6 @@
// Removed in SDK 1.1.0
//#define GPIO_PULL_DOWN (2)
-typedef struct _pyb_pin_obj_t {
- mp_obj_base_t base;
- uint16_t pin_id;
- uint16_t phys_port;
- uint32_t periph;
- uint16_t func;
-} pyb_pin_obj_t;
-
STATIC const pyb_pin_obj_t pyb_pin_obj[] = {
{{&pyb_pin_type}, 0, 0, PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0},
{{&pyb_pin_type}, 1, 1, PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1},
@@ -72,12 +64,16 @@ STATIC const pyb_pin_obj_t pyb_pin_obj[] = {
STATIC uint8_t pin_mode[16 + 1];
-uint mp_obj_get_pin(mp_obj_t pin_in) {
+pyb_pin_obj_t *mp_obj_get_pin_obj(mp_obj_t pin_in) {
if (mp_obj_get_type(pin_in) != &pyb_pin_type) {
nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, "expecting a pin"));
}
pyb_pin_obj_t *self = pin_in;
- return self->phys_port;
+ return self;
+}
+
+uint mp_obj_get_pin(mp_obj_t pin_in) {
+ return mp_obj_get_pin_obj(pin_in)->phys_port;
}
int pin_get(uint pin) {