diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2017-02-08 11:14:23 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2017-02-08 11:14:23 +0300 |
commit | 181f7d145002731e5baec0f2c43ac57818447f8b (patch) | |
tree | 85ac35d44c58eb18b0b394755c31a97d8707b974 /extmod/machine_signal.c | |
parent | 7ae9bee7905601a827f3d216300f917afbacf07e (diff) | |
download | micropython-181f7d145002731e5baec0f2c43ac57818447f8b.tar.gz micropython-181f7d145002731e5baec0f2c43ac57818447f8b.zip |
extmod/machine_signal: Implement Signal .on() and .off() methods.
Each method asserts and deasserts signal respectively. They are equivalent
to .value(1) and .value(0) but conceptually simpler (and may help to avoid
confusion with inverted signals, where "asserted" state means logical 0
output).
Diffstat (limited to 'extmod/machine_signal.c')
-rw-r--r-- | extmod/machine_signal.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/extmod/machine_signal.c b/extmod/machine_signal.c index fb179c438c..de6c3ff320 100644 --- a/extmod/machine_signal.c +++ b/extmod/machine_signal.c @@ -92,8 +92,22 @@ STATIC mp_obj_t signal_value(size_t n_args, const mp_obj_t *args) { } STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(signal_value_obj, 1, 2, signal_value); +STATIC mp_obj_t signal_on(mp_obj_t self_in) { + mp_virtual_pin_write(self_in, 1); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_1(signal_on_obj, signal_on); + +STATIC mp_obj_t signal_off(mp_obj_t self_in) { + mp_virtual_pin_write(self_in, 0); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_1(signal_off_obj, signal_off); + STATIC const mp_rom_map_elem_t signal_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_value), MP_ROM_PTR(&signal_value_obj) }, + { MP_ROM_QSTR(MP_QSTR_on), MP_ROM_PTR(&signal_on_obj) }, + { MP_ROM_QSTR(MP_QSTR_off), MP_ROM_PTR(&signal_off_obj) }, }; STATIC MP_DEFINE_CONST_DICT(signal_locals_dict, signal_locals_dict_table); |