Part Number: MSP430F5438A
Hi,
I am currently working with the MSP430F5438A. I am able to read the GPIO pin state (for example, P2IN & BIT0) correctly inside a while loop. However, when I configure the same pin as an interrupt source using the configuration shown below, the behavior differs:
P2DIR &= ~BIT0;
P2IE |= BIT0;
P2IES &= ~BIT0;
P2IFG &= ~BIT0;
Observations:
-
When two pulses (high–low transitions) occur with a short time interval, the controller detects only one interrupt instead of both.
-
If the time interval between two pulse detections is less than 700 ms, only a single interrupt is generated.
-
When the interval is greater than 700 ms, both pulses are detected correctly.
-
This behavior suggests that after the first interrupt occurs, the interrupt flag is not reasserted for approximately 700 ms.
-
In some cases, even with an interval shorter than 700 ms, both interrupts are detected correctly. However, most of the time, only one interrupt is generated.
-
During these missed interrupts, the pin state still transitions correctly between high and low when observed through polling.
Concern:
The root cause of this behavior is not clearly understood. We would like to understand why this issue occurs with the current interrupt configuration and what specifically causes the apparent delay in re-triggering the interrupt.
Thanks,
ANBU.