Existe una compensación entre resolución y frecuencias alcanzables. Mencionas Timer 2, pero en el Atmega328P Timer 2 es un temporizador de 8 bits, por lo que no podrías configurar el CTC en 1024.
Supongamos que estamos hablando de un temporizador de 16 bits, como el temporizador 1 en el Atmega328P. Con un preescalador de uno, puede cronometrar (asumiendo un reloj de 16 MHz) de 1 a 65536 "tics", es decir, 62,5 ns hasta 4096 µs.
Este sería el más preciso medición porque está utilizando un tic de reloj (procesador) por tic de temporizador (un preescalador de uno).
Sin embargo, si planea cronometrar más de 4.096 ms, entonces necesita aumentar el preescaler . El siguiente preescalador en el temporizador 1 es 8, por lo que ahora puede cronometrar un intervalo 8 veces más largo (32768 µs), sin embargo, su precisión (precisión) ahora se ha reducido en un factor de 8. La granularidad del temporizador ha aumentado de 62,5 ns a 62,5 * 8 ns, que es 500 ns.
Si necesita un tiempo superior a 32,768 ms, el preescaler tiene que ser más grande de nuevo, siendo el siguiente 64. Así que ahora puede cronometrar hasta 262144 µs, pero con una granularidad de 62,5 * 64, que es 4000 ns (4 µs).
Mi sugerencia sería utilizar el preescalador más bajo que pueda, pero aún así obtenga el intervalo que desee. Entonces, obviamente, no puede usar un preescalador de uno a diez ms.
Tengo una discusión sobre temporizadores en http://www.gammon.com.au/timers.
En esa página hay un gráfico que ayuda a visualizar los efectos de diferentes prescalers:
La parte superior (cuenta de uno) le brinda efectivamente la granularidad de cada preescalador. Por ejemplo, un preescalador de 256 tiene una granularidad de 16.000 ns (16 µs). Ciertas frecuencias (potencias de 2) se prestan a combinaciones (p. Ej., Preescalador de 1 con una cuenta de 256, o preescalador de 256 con una cuenta de 1).
Sin embargo, para las frecuencias que no tienen esa propiedad, el preescalador más pequeño (si se puede usar) dará una granularidad más fina.