asasas
4.0 Introducción.
Los temporizadores/contadores son probablemente los periféricos complejos de mayor uso en los
microcontroladores. Los temporizadores/contadores son altamente versátiles, se pueden emplear
para medir periodos de tiempo, para determinar el ancho de un pulso, para medir una velocidad,
para medir frecuencia, o para proporcionar señales desalida. Ejemplos de aplicaciones pueden
incluir la medición de las revoluciones por minuto de un motor de automóvil, el periodo exacto de
un tiempo especifico, tal como el tiempo de trayectoria de una bala, producir tonos para crear
música o para producir la chispa de una bujía de un sistema de ignición, o proveer el ancho
especifico de un pulso u obtener frecuencias especificas para el control dela velocidad de un
motor. En este capítulo se estudian los temporizadores/contadores del AVR.
No obstante el empleo de dos modos distintos, temporizadores y contadores,
temporizadores/contadores son simples contadores binarios ascendentes. Cuando se emplea el
temporizador, el contador binario estará contando periodos de tiempo aplicados a sus entradas, y
en el modo contador, estará contandolos eventos o pulsos de alguna naturaleza. Por ejemplo, si el
contador binario tiene pulsos de 1 milisegundo en su entrada, el periodo de tiempo pue de ser
medido iniciando el contador al inicio de un evento y parando el contador al final del evento. La
cuenta final en el contador será el número de milisegundos que ha transcurrido durante el evento.
Cuando el temporizador/contador esempleado como un contador, los eventos a ser contados son
aplicados a la entrada del contador binario, el número de eventos es contado. Por ejemplo, el
contador puede ser empleado para contar el número de latas de sopa en una línea de llenado de
una fábrica de sopas, aplicando un pulso a la entrada del contador por cada lata de sopa. En
cualquier momento, el contador podrá ser leído para determinarcuántas latas de sopa han pasado
en la línea de llenado.
Los microcontroladores AVR poseen dos temporizadores/contadores de 8 bi ts y uno de 16 bits. En
uno y otro caso, lo importante para el programa es conocer cuando se alcanza la máxima cuenta y
los desbordamientos correspondientes. En el caso de un contador de 8 bits, la cuenta máxima que
puede alcanzar es 255, en cuyo caso la siguientecuenta puede causar un desbordamiento y llevar
al contador a 0. En el caso del contador de 16 bits, lo mismo ocurre para 65,535.El evento de
desbordamiento es muy importante para que el programa lea exactamente los resultados del
temporizador/contador. De hecho, los desbordamientos son tan importantes que se proporciona
la interrupción cuando ocurre está en el temporizador/contador.
4.1Temporizador y contador.
Un temporizador o timer, es un reloj especializado, que regularmente se ocupa para controlar la
secuencia de un evento o proceso. Un contador es en términos generales, un dispositivo que
almacena el número de veces que un evento se lleva a cabo.
Un temporizador en un microcontrolador AVR, es un registro que almacena el número de pulsos
de reloj que ocupa como base detiempo y que, al llegar a un valor de sobre flujo, regularmente
genera una interrupción.
Por otro lado el contador del AVR es un registro que se compara constantemente contra otro
registro y que al igualarse el valor de ambos regularmente se genera una interrupción.
El AVR atmega8 posee tres temporizadores, dos de ellos, timer 0 y timer 2, son de 8 bits, mientras
que uno de ellos, el timer1, es de 16 bits.
4.2 Uso de timer 1.
4.2.1 Registro de cuenta TCNT1.
Este es el registro encargado de llevar la cuenta de los pulsos de reloj.
4.2.2 Registro de control A, TCCR1A.
Bit 7:6 - COM1A1:0 Modo de salida de comparación para canal A.
Bit 5:4 - COM1B1:0 Modo de salida de comparación para canal B.
Bit 3 – Forzamiento de salida de comparación, canal A.
Bit2 –...
Regístrate para leer el documento completo.