Interrupt e delay() - alternative

-attacco un'interrupt e mi rimane in attesa della variazione del pin X.
-la variazione avviene ed interviene la funzione associata all'interrupt, chiamata "int_func()"
-int_func() quando viene chiamata dovrebbe fare una cosa del genere:
-accendo led,
-delay,
-spengo led,

In realtà ora sto notando che esegunedo un delay tipo:

delay(500000);

Una "specie di delay" avviene ma invece di essere di 500 secondi dopo circa 15 secondi termina..