Con un timer, lo activas al entrar en la rutina, en la interrupción por desborde vas aumentando una variable, ahora en tu rutina pones otro if comprobando esta variable y cuando sobrepase el valor deseado sales de la rutina.
Si no quieres usar timer también puedes ir incrementando una variable en la misma rutina, calculas el tiempo que tarda en recorrerla y lo mismo de antes, if comprobando y cuando pase de.. break.
A todo esto, cada vez que haya actividad contador a 0.
Un saludo