diff --git a/lib/utils/interrupt_char.c b/lib/utils/interrupt_char.c index 3133d5c068..ab4efd9113 100644 --- a/lib/utils/interrupt_char.c +++ b/lib/utils/interrupt_char.c @@ -31,11 +31,19 @@ int mp_interrupt_char; void mp_hal_set_interrupt_char(int c) { if (c != -1) { + #if MICROPY_KBD_EXCEPTION + mp_obj_exception_clear_traceback(MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception))); + #else mp_obj_exception_clear_traceback(MP_STATE_PORT(mp_kbd_exception)); + #endif } mp_interrupt_char = c; } void mp_keyboard_interrupt(void) { + #if MICROPY_KBD_EXCEPTION + MP_STATE_VM(mp_pending_exception) = MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception)); + #else MP_STATE_VM(mp_pending_exception) = MP_STATE_PORT(mp_kbd_exception); + #endif }