Hello,
You will need to read the port input status from within the ISR, to determine the pin that caused the interrupt. This implies that the active level must be present for a period that exceeds the interrupt latency period, which may also include the period of other ISRs that are already executing when the the input event occurs.
If more than one input pin is enabled, and if a previously detected pin remains in an active state, input transitions from the other pins will not be detected. This applies even with the use of edge triggered mode for the interrupt, The solution is to temporarily disable each pin whilst it remains in an active state.
For mechanical switch use, a debounce period will also need to be allowed. An active pin would be temporarily disabled for a minimum period, usually within the range 10 to 100 milliseconds.
Regards,
Mac