The Arduino is running a light controller. It's really not going to do anything in that 16 msec--too little time for a second stroke on a light switch. However, the interrupt is designed to look for upsets to the GPIO (PCA9555) from EMI. It resets the GPIO chip and rewrites the last light configuration. 16 msec is approximately one 60 Hz cycle, top ensure that if there is an upset when a circuit is turned off or on, that the reset isn't accomplished prior to the upset. I don't want the GPIO to be reset and written to on every loop through the software as the Arduino looks for a switch push.
It would be easy to insert a delay(16) in the code, but there is a timing issue in case there is a double click input--the 16 msec is a non-trivial portion of the timing for a double click (which could also be taken into account) but I want the clean elegance of an interrupt to service this reset.
Dr. Q