Está en la página 1de 10

Temporizadores

Microcontroladores
Eulogio Alberto Pari Aguilar

5
Propósito:
- Entender el funcionamiento de los temporizadores
y utilizarlos para resolver problemas que requieren
control de tiempo.
ATmega328p: Temporizador/Contador 0

El temporizador/contador 0 es un
módulo de 8 bits con dos unidades
independientes de comparación
con soporte PWM. Proporciona
temporización precisa durante la
ejecución del programa (control
por eventos) y generación de
ondas.
Para que este módulo funcione, el
bit PRTIM0 (registro PRR) debe
ponerse a cero (valor por defecto).
ATmega328p: Temporizador/Contador 0

Registros:
TCNT0: Registro de 8 bits que lleva
la cuenta del Timer0. Empieza en
0x00 y el máximo es 0xFF.
TCCR0A y TCCR0B: Registro de
control del Timer0. Controla
parámetros como el modo de
operación, el valor máximo de
cuenta y la forma de onda
generada en los pines OC0A y
OC0B.
ATmega328p: Temporizador/Contador 0
Dependiendo del modo seleccionado, el contador se incrementa, decrementa o reinicia
con cada pulso de la señal de reloj que lo controla. Esta señal de reloj puede ser externa
o interna y se elige a través de los bits (CS2:CS0) del registro TCCR0B. Si no se selecciona
ninguna fuente de reloj, el temporizador se desactiva. La secuencia de conteo se
determina con los bits WGM00, WGM01 y WGM02 de los registros TCCR0A y TCCR0B,
bits que seleccionan entre los distintos modos de operación del contador. Cuando el
temporizador se desborda, se genera la interrupción TOV0. Su configuración varía con el
modo de operación escogido y puede ser utilizada como interrupción de la CPU.
ATmega328p: Temporizador/Contador 0

Señales internas:
count: Incrementar o decrementar TCNT0 en 1
direction: Seleccionar entre incremento y decremento
clear: Borrar el registro TCNT0 (ponerlo a cero)
clkT0: Reloj del temporizador/contador
top: Indica que el registro TCNT0 ha alcanzado su máximo valor
bottom: Indica que el registro TCNT0 ha alcanzado su mínimo valor (cero)
ATmega328p: Temporizador/Contador 0
ATmega328p: Temporizador/Contador 0
ATmega328p: Temporizador/Contador 0

En modo normal el contador siempre se incrementa. En el momento en que


llega al máximo valor posible (0xFF), se reinicia a su valor más bajo (0x00) y
comienza de nuevo. En este punto, el bit (flag) TOV0 del registro TIFR0 se
activa indicando que el contador se ha reiniciado y se genera, si se encuentra
habilitada, la interrupción TOIE0. El contador no detiene su cuenta en ningún
momento. Se puede programar un nuevo valor en TCNT0 en cualquier
instante. El flag TOV0 se borra escribiendo un 1 en dicho flag.

También podría gustarte