¿Por qué tener solo un temporizador, cuando puedes tener más de uno?
Hay más de un temporizador para diferentes funciones. Algunos temporizadores se aplican únicamente a ciertos periféricos, como ADC, USART, CCPWM, etc. Timer2 podría usarse arbitrariamente para una función, como "comprobar sensor cada x milisegundos", mientras que Timer1 también está trabajando para "enviar datos a otro dispositivo cada segundo." Con más temporizadores, se expande en gran medida la capacidad del diseñador para usar la sincronización del hardware (e interrumpe, muy rápido, muy repetible, muy periódico) en lugar de la muy mala sincronización y la periodicidad de un solo bucle de código principal.
Los temporizadores se utilizan para procesar eventos en un período de tiempo regular (intervalo). Para algunas aplicaciones, esto puede ser necesario. Por ejemplo, si tenía un ADC SAR externo conectado al PIC y la frecuencia de muestreo máxima era x, entonces tendría que esperar un poco de tiempo antes de intentar acceder al dispositivo de nuevo, de lo contrario, se producirá un error. Un temporizador es excelente para esto, ya que el tiempo es muy preciso y regular.
Si este código ADC estuviera en un bucle de código principal con pausas, el tiempo del código sería irregular para cualquier rama que ejecutara más código de lo normal. Por ejemplo, la impresión de caracteres cada segundo en una pantalla llevará tiempo, y en un bucle de código principal, la siguiente lectura de ADC se retrasará. Si se utilizan temporizadores e interrupciones, entonces el tiempo será preciso (siempre que el otro código no tarde más de lo que permiten los temporizadores).