Hola, ya hace mucho tiempo, cuando recien empezaba con los micros tuve una necesidad como la tuya, lo resolvi de la siguinte manera:
Cuando alguien apretaba el boton de "inicio" incrementaba una variable todo el tiempo mientras el boton estuviera apretado, esto es unos cuantos cientos de milisegundos, pero a 4MHz mi resolución estaba en el orden del microsegundo, nadie puede tener esa exactitud apretando un boton, por eso el resultado siempre es un numero diferente.
Espero que sea util.