diff options
Diffstat (limited to 'py')
| -rw-r--r-- | py/circuitpy_defns.mk | 1 | ||||
| -rw-r--r-- | py/obj.c | 8 | ||||
| -rw-r--r-- | py/vm.c | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/py/circuitpy_defns.mk b/py/circuitpy_defns.mk index 94f8ba42e..d6d192a95 100644 --- a/py/circuitpy_defns.mk +++ b/py/circuitpy_defns.mk @@ -311,6 +311,7 @@ SRC_COMMON_HAL_ALL = \ alarm/__init__.c \ alarm/pin/PinAlarm.c \ alarm/time/TimeAlarm.c \ + alarm/touch/TouchAlarm.c \ analogio/AnalogIn.c \ analogio/AnalogOut.c \ analogio/__init__.c \ @@ -29,6 +29,7 @@ #include <stdarg.h> #include <assert.h> +#include "lib/utils/interrupt_char.h" #include "py/obj.h" #include "py/objtype.h" #include "py/objint.h" @@ -67,7 +68,12 @@ void mp_obj_print_helper(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t #ifdef RUN_BACKGROUND_TASKS RUN_BACKGROUND_TASKS; #endif - mp_handle_pending(); + #if MICROPY_KBD_EXCEPTION + // Stop printing if we've been interrupted. + if (mp_hal_is_interrupted()) { + return; + } + #endif #ifndef NDEBUG if (o_in == MP_OBJ_NULL) { @@ -1015,7 +1015,7 @@ unwind_jump:; } #endif SET_TOP(mp_call_method_n_kw(unum & 0xff, (unum >> 8) & 0xff, sp)); - DISPATCH(); + DISPATCH_WITH_PEND_EXC_CHECK(); } ENTRY(MP_BC_CALL_METHOD_VAR_KW): { |
