diff options
| author | robert-hh <robert@hammelrath.com> | 2025-01-19 11:06:26 +0100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2025-02-28 16:50:45 +1100 |
| commit | 22310ae27aea56377b31bdcc2d7c2ba712316c4f (patch) | |
| tree | 3705d7ccb8ad715e400293b01a553edcc1413247 | |
| parent | e009ab06c581cf2e8b6dbf8d2002105c97131a1f (diff) | |
cc3200/mods/pybpin: Implement Pin.toggle() method.
Tested with a WiPy 1 board.
Signed-off-by: robert-hh <robert@hammelrath.com>
| -rw-r--r-- | ports/cc3200/mods/pybpin.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ports/cc3200/mods/pybpin.c b/ports/cc3200/mods/pybpin.c index 037c78a32..ea40aa9df 100644 --- a/ports/cc3200/mods/pybpin.c +++ b/ports/cc3200/mods/pybpin.c @@ -680,6 +680,20 @@ static mp_obj_t pin_value(size_t n_args, const mp_obj_t *args) { } static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(pin_value_obj, 1, 2, pin_value); +// pin.toggle() +static mp_obj_t pin_toggle(mp_obj_t self_in) { + pin_obj_t *self = self_in; + if (self->value) { + self->value = 0; + MAP_GPIOPinWrite(self->port, self->bit, 0); + } else { + self->value = 1; + MAP_GPIOPinWrite(self->port, self->bit, self->bit); + } + return mp_const_none; +} +static MP_DEFINE_CONST_FUN_OBJ_1(pin_toggle_obj, pin_toggle); + static mp_obj_t pin_id(mp_obj_t self_in) { pin_obj_t *self = self_in; return MP_OBJ_NEW_QSTR(self->name); @@ -902,6 +916,7 @@ static const mp_rom_map_elem_t pin_locals_dict_table[] = { // instance methods { MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&pin_init_obj) }, { MP_ROM_QSTR(MP_QSTR_value), MP_ROM_PTR(&pin_value_obj) }, + { MP_ROM_QSTR(MP_QSTR_toggle), MP_ROM_PTR(&pin_toggle_obj) }, { MP_ROM_QSTR(MP_QSTR_id), MP_ROM_PTR(&pin_id_obj) }, { MP_ROM_QSTR(MP_QSTR_mode), MP_ROM_PTR(&pin_mode_obj) }, { MP_ROM_QSTR(MP_QSTR_pull), MP_ROM_PTR(&pin_pull_obj) }, |
