¿Por qué es difícil?
Esto no es lo más fácil de hacer. ha elegido un oscilador de cristal que se ha elegido específicamente para facilitar la división a las velocidades en baudios comunes.
Por ejemplo:
11.0592MHz / 9600 es 1152
11.0592MHz / 115200 es 96
Eso significa que puedes alcanzar algunas velocidades de transmisión estándar perfectamente con un determinado divisor. Da UART muy consistente. Ahora quieres contar el tiempo.
Contando 1 segundo
Si toma un 11.0592MHZ, luego divídalo entre 256 y 64, obtendrá un valor de 675. Esto significa que si desea un conteo preciso de segundos, debe interrumpir cada 256 * 64 ciclos de reloj y contar con una variable en su interrupción puede golpearlo.
Cómo hacerlo más fácil
Tienes dos opciones, aceptando error. Primero, tu ecuación se dividió por 255 porque estás contando de 0 a 255, pero como la interrupción está en exceso, en realidad es como cuentas hasta 256, por lo que deberías dividir por 256.
¿Mi reloj tiene un error?
Decida cuánta precisión necesita. A menudo no necesita precisión en la precisión; si este es el caso, acepte que es casi un segundo y use lo que Thomas dijo en el comentario. Cuente lo más cerca que pueda y haga frente. El temporizador 1 te permitirá dividir entre 65536 y pasar más tiempo haciendo cosas que no sean manejar interrupciones.
¡Necesito precisión en mi reloj!
Debe seleccionar un valor de oscilador que sea un múltiplo de 32768 Hz . Lo que quieres es algo que pueda reducirse a 1Hz de la división por una potencia de 2.
Si necesita la buena velocidad en baudios y un buen contador, la página wiki tiene una marca para RTC (buena para el reloj en tiempo real). 4.608 MHz es una gran cosa, se divide a 1Hz bastante fácil y también es bueno para 115200 baudios.