diff options
Diffstat (limited to 'shared-bindings/microcontroller')
| -rw-r--r-- | shared-bindings/microcontroller/__init__.c | 22 | ||||
| -rw-r--r-- | shared-bindings/microcontroller/__init__.h | 3 |
2 files changed, 25 insertions, 0 deletions
diff --git a/shared-bindings/microcontroller/__init__.c b/shared-bindings/microcontroller/__init__.c index 239251805..031bfe35c 100644 --- a/shared-bindings/microcontroller/__init__.c +++ b/shared-bindings/microcontroller/__init__.c @@ -70,6 +70,26 @@ STATIC mp_obj_t mcu_delay_us(mp_obj_t delay_obj) { } STATIC MP_DEFINE_CONST_FUN_OBJ_1(mcu_delay_us_obj, mcu_delay_us); +//| .. method:: disable_interrupts() +//| +//| Disable all interrupts. Be very careful, this can stall everything. +//| +STATIC mp_obj_t mcu_disable_interrupts(void) { + common_hal_mcu_disable_interrupts(); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(mcu_disable_interrupts_obj, mcu_disable_interrupts); + +//| .. method:: enable_interrupts() +//| +//| Enable the interrupts that were enabled at the last disable. +//| +STATIC mp_obj_t mcu_enable_interrupts(void) { + common_hal_mcu_enable_interrupts(); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(mcu_enable_interrupts_obj, mcu_enable_interrupts); + //| :mod:`microcontroller.pin` --- Microcontroller pin names //| -------------------------------------------------------- //| @@ -87,6 +107,8 @@ const mp_obj_module_t mcu_pin_module = { STATIC const mp_rom_map_elem_t mcu_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_microcontroller) }, { MP_ROM_QSTR(MP_QSTR_delay_us), MP_ROM_PTR(&mcu_delay_us_obj) }, + { MP_ROM_QSTR(MP_QSTR_disable_interrupts), MP_ROM_PTR(&mcu_disable_interrupts_obj) }, + { MP_ROM_QSTR(MP_QSTR_enable_interrupts), MP_ROM_PTR(&mcu_enable_interrupts_obj) }, { MP_ROM_QSTR(MP_QSTR_Pin), MP_ROM_PTR(&mcu_pin_type) }, { MP_ROM_QSTR(MP_QSTR_pin), MP_ROM_PTR(&mcu_pin_module) }, }; diff --git a/shared-bindings/microcontroller/__init__.h b/shared-bindings/microcontroller/__init__.h index 3600d3b08..8c0b071ec 100644 --- a/shared-bindings/microcontroller/__init__.h +++ b/shared-bindings/microcontroller/__init__.h @@ -31,6 +31,9 @@ extern void common_hal_mcu_delay_us(uint32_t); +extern void common_hal_mcu_disable_interrupts(void); +extern void common_hal_mcu_enable_interrupts(void); + extern const mp_obj_dict_t mcu_pin_globals; #endif // __MICROPY_INCLUDED_SHARED_BINDINGS_MICROCONTROLLER___INIT___H__ |
