Temporizadores PIC® MCU de 8 bits

Los temporizadores y contadores son una característica muy útil, y algunos pueden decir obligatoria, de la MCU PIC®. Como su nombre lo indica, los temporizadores indican cuándo ha transcurrido un tiempo. Los temporizadores también pueden contar usando los mismos registros internos. La diferencia entre un temporizador y un contador es la fuente del pulso que incrementa el registro de conteo. Si la fuente es una base de tiempo, como el reloj del oscilador que ejecuta el microcontrolador, entonces está basado en el tiempo y, por lo tanto, es un temporizador. Si en cambio la fuente es un pulso de un sensor o interruptor, entonces es un contador. Pero a través de la mayoría de la documentación, el temporizador / contador periférico normalmente se conoce como un temporizador periférico (aunque también puede contar).

El conteo y el tiempo se convierten en la base de muchas otras funciones en la MCU PIC®. El control del brillo de los LED se puede completar con una señal de modulación de ancho de pulso (PWM). Esa señal PWM se basa en un temporizador. La creación de un contador de personas en un parque de diversiones o en la entrada del metro se puede basar en una pantalla digital y un mostrador.
En el corazón del temporizador / contador hay un registro de contador binario que se incrementa en uno en cada señal de entrada. El tamaño de ese contador determina la cantidad de pulsos que aceptará hasta que se desborde y vuelva a cero. Los dispositivos PIC® MCU de 8 bits tienen temporizadores de 8 bits (256 pulsos para desbordamiento) y 16 bit (65535 pulsos de pulso para desbordamiento). Al contar una entrada pulsada, estos pueden ser lo suficientemente grandes, pero cuando el reloj de instrucción interno, que puede funcionar en el rango de megahertz (millones de pulsos por segundo), esos valores de desbordamiento se vuelven bastante pequeños.

A continuación se muestra un diagrama de bloques simplificado del módulo Timer0:


Un temporizador se puede expandir agregando un preescalador. Prescaling es simplemente un segundo contador colocado en frente del contador principal para omitir un número de pulsos de reloj. El preescaler es esencialmente un contador con un valor de desbordamiento ajustable. El preescalador puede configurarse para desbordarse en valores de 2, 4, 8 ... hasta 256 pulsos. por ejemplo, si el preescalador está configurado en 8, el contador del temporizador recibirá un pulso después de cada 8 pulsos de reloj. Esto le permite al diseñador extender el tiempo antes de obtener el pulso de desbordamiento del temporizador / contador.

Es el pulso de desbordamiento lo que es clave para la operación. Ese impulso de desbordamiento alimenta otros periféricos, como la estructura de interrupción dentro de la MCU PIC®. Cuando ocurre el desbordamiento, se activa la dirección del vector de interrupción y se implementa una rutina de software separada, llamada rutina de servicio de interrupción, separada del bucle principal del programa. Los desbordamientos del temporizador también pueden disparar Conversiones analógicas a digitales (ADC). El desbordamiento también puede indicar simplemente que se ha recibido una cantidad correcta de pulsos o que ha transcurrido un período de tiempo específico.

PIC MCU tiene varios temporizadores diferentes disponibles, cada uno con características únicas, tal como se describe a continuación.

Timer0
Timer1
Timer2,4,6
Temporizador de vigilancia
Temporizador de encendido


Fuente: 8-Bit PIC® MCU Timers

Comentarios

Entradas más populares de este blog

Resistencias

Guía de introducción de XC8