I'm using Port B interrupts on a MC9S08DZ128. The interrupt pin is set for Edge only and is always enabled. Sometimes the interrupt flag (PTBIF) is not getting set (PTBIF read with the debugger as well as my code not getting an interrupt) even though I can see the level change on the Port B pin with an oscilloscope and also read the level change in the PTBD register with the debugger. The problem seems to be random with some interrupts flagged and others not.
I thought PTBIF would ALWAYS be set even if another interrupt was being processed, or another interrupt occurred at the same time (for instance a timer interrupt). What could cause the PTBIF bit to not get set?