10 years, 8 months ago.

InterruptIn Question

Can some one advise me what happens when I stop interrupts using:-

 irq.fall(NULL);

I know (1) the function is no longer available. (2) The interrupt has been removed from :-

 LPC_GPIOINT->IO0IntEnF;

I can re-enable the interrupt with :-

 LPC_GPIOINT->IO0IntEnF = 1UL << 0; 

Yes I am using p9->p0.0 as the Interrupt pin.

I can see using:-

LPC_GPIOINT->IO0IntStatF
LPC_GPIOINT->IntStatus

That there is not an interrupt pending nor has the pin seen a falling edge, even though the pin has at some time gone low. This is not a one off transition. so really my question is what else has been turned off. that I have missed?

2 Answers

10 years, 8 months ago.

Here is the code: http://mbed.org/users/mbed_official/code/mbed-src/file/398f4c622e1b/targets/hal/TARGET_NXP/TARGET_LPC176X/gpio_irq_api.c

But why would you be missing something? It just disables the interrupt for that pin if you attach a NULL pointer.

Accepted Answer
10 years, 8 months ago.

Erik, Thanks for the pointer. It didnt really help, other than make me think more about the issue. What I was trying to do was turn off the interrupt during blocking procedures, but still wanted to catch a source interrupt, by checking the pending reg before turning the interrupt (vector) back on, thus not missing any as I am at the moment. I think I have other issues that need to be solved first, before getting back to this one.

Thanks for replying!