A look into the code improves knowledge:
Changing this line of the code by adding hard=True:
Code: Select all
p14.irq(trigger=Pin.IRQ_FALLING, handler=callback, hard=True)
B.t.w: The relevant section in machine_pin.c is:
Code: Select all
if (pin_irq_is_hard[p]) {
mp_call_function_1_protected(handler, MP_OBJ_FROM_PTR(&pyb_pin_obj[p]));
} else {
mp_sched_schedule(handler, MP_OBJ_FROM_PTR(&pyb_pin_obj[p]));
}
P.S.: triggering on both slopes with a short pulse and hard interrupt causes trouble,