El reloj debe manejarse en una única función.
Si el programa tiene una parte interactiva, donde se espera tecleo del usuario, deberías tener una función propia que toma las teclas presionadas, usada en todo el programa. Esa función mientras espera que se presione algo, llama a la del reloj continuamente (una posibilidad es que solo la llame cuando reconoce más de 1 segundo de inactividad). La función de reloj debe tener el cuidado de restaurar color de texto y posición en pantalla antes de terminar, para que no afecte al resto del programa.
Si el programa también tiene procesamiento por lotes, los procesos deben invocar a la misma función de reloj en cada iteración.
G