ATmega16 – Timer 2

Este timer tiene la característica de sincronizarse con un cristal externo de 32KHz, para esto tenemos que habilitar nuestro timer en modo asíncrono, esto es muy importante ya que con este cristal se puede obtener la medida de tiempo de un segundo o hasta incluso casi 16 segundos sin tener que forzar los timers del uC.

Características del Timer 2:

  • Timer de 8 bits.
  • Contador con una unidad de comparación.
  • Modo de borrado del contador en la igualdad de la comparación CTC (Auto-recarga)
  • Modulador de ancho de pulso PWM de fase correcta y libre de glitches.
  • Generador de frecuencia.
  • Pre-escalador de 10 bits.
  • Dos fuentes de interrupción: desbordamiento (TOV2) e igualdad en la comparación (OCF2).
  • Permite sincronización con un cristal externo de 32 KHz independiente del cristal I/O.

Esquema Descriptivo:

Del esquema podemos destacar al registro ASSRn que es el encargado de configurar al timer en modo asíncrono, TOSC1 y TOSC2 que son los pines en donde se colocará el cristal de 32KHz.

Los registros que intervienen en la configuración del Timer 2 son:

TCCR2: Registro de control encargado de la configuración del Timer 2.

Mediante estos dos bits podemos configurar los cuatro modos de funcionamiento del timer.

Mediante estos dos bits podemos configurar el modo de salida de comparación.

Mediante estos tres bits podemos escoger en que pre-escalamiento vamos a dividir la frecuencia con la que está trabajando nuestro timer.

TIMSK: Registro encargado de habilitar las interrupciones del Timer 2, OCIE2 habilita la interrupción por igualdad en la comparación, TOIE2 habilita la interrupción por desbordamiento.

TIFR: Registro de flags de las interrupciones.

ASSR: Registro encargado de configurar al Timer 2 en modo asíncrono.

AS2 cuando está habilitado (1) el Timer 2 trabaja con el cristal de 32KHz, TCN2UB este bit se coloca a uno cada vez que TCNT2 es escrito y toma valor cero cuando está listo para recibir nuevo valor en TCNT2, tomar en cuenta que el bit 0,1 y 2 son de solo lectura. OCR2UB es la actualización del registro de comparación ocupado, TCR2UB es la actualización del registro de control del Timer ocupado.

Ejemplo:

Descargas: