kaki
a grandes razgos la cosa seria mas o menos asi,
El TIMER 0 es un registro dentro del micro que se incrementa independientemente de lo que vos hagas en el programa cada determinado tiempo, este tiempo esta dado por l avelocidad del Clock que estes usando y la configuracion de los registros del TIMER0 la hoja de datos te especifica los registros que son y te dice como configurarlos, cuando el timer se desborde, es decir pase de FFFF a 0000, es capaz de generar una interrupcion en el micro, esto es decir que el micro deja de hacer lo que estaba haceindo y se pone a atender el evento que tiene que ejecutar cada determinado tiempo, una vez que lo completa vuelve a ejecutar el codigo que seguia al que habia ejecutado antes de la interrupcion.
de esta forma vos tenes un "proceso" corriendo por un lado y el timer incrementandose por el otro, lo que hace que tu micro no se quede esperando en un delay
para configurar que el timer se desborde cada determinado tiempo configura los preescalers del mismo. problablente no alcance a esperar 10 seg. por lo uqe se puede hacer es dentro del servicio de la interrupcion que se ejecute cada 1 seg por ejemplo incrementar una variable hasta llegar a 10
bueno, espero que mas o menos se entieda. igual busca en el foro, los ejemplos del compidalor, google, que hay ejemplos por todos lados
saludos