El mejor método, en mi humilde opinión, es tener un temporizador de hardware que nunca se escribe, sino que simplemente se ejecuta de forma gratuita. Esto le permitirá a uno emular fácilmente un temporizador de sondeo arbitrario para duraciones de hasta la mitad de la longitud del temporizador de hardware. Para "iniciar" un temporizador, simplemente calcule el valor del temporizador de hardware cuando debería expirar. Para ver si un temporizador ha expirado aún, reste el tiempo de vencimiento esperado de la hora actual (con respecto a ambas cantidades como sin firmar), y vea si el resultado (sin firmar) excede la mitad del valor máximo del temporizador. Si es así, el temporizador no ha expirado.
Alternativamente, si uno quiere un temporizador para medir el tiempo desde que ocurrió un evento determinado, simplemente puede bloquear el valor del temporizador cuando ocurrió el evento, y luego calcular la diferencia entre el valor bloqueado y la hora actual.