pre scale a timer and start it at the beginning of the program.
read the overflow bit in the ISR.once overflow happens jump to your subroutine.if the timer value loaded is not enough, write a logic in the ISR such a way that it makes up the delay you wanted.