Sei sulla pagina 1di 3

EL REGISTRO TMR0

Un temporizador especial.
Hoy: 25 Agosto 2013, Incluir en favoritos, para volver a visitarnos. Creado por: V. Garca.

Introduccin.
Debido a la importancia de este registro, se ha optado por realizar un artculo en exclusiva para este registro. Se supone que el lector tiene unos conocimientos bsicos para la comprensin y seguimiento del contenido de este artculo, sobre los microcontroladores y en especial sobre los microPICs. Esto es lo que nos hace emprender este proyecto. La medida constante del tiempo es en s, una constante Universal del hombre, en todas sus facetas y esta no es una rama que escape a esta sentencia. Una funcin muy habitual de los programas para controlar dispositivos consiste en contar intervalos de tiempo, el elemento que realiza esta funcin se llama temporizador (Timer), en ocasiones cuenta impulsos provenientes del mundo exterior, entonces el elemento destinado a tal fin se llama contador. Ahora bien, si las labores de temporizador o contador en un programa, las asignramos al programa principal le robaran mucho tiempo al procesador en detrimento de actividades ms importantes, es decir, en el tiempo que emplea en temporizar o contar, no puede atender otras rutinas. Por este motivo se disean recursos especficamente orientados a estas misiones. Este tipo de circuitos, se conocen con el nombre de RTCC (Real Time Clock Counter) y tambin como Timer/Counter (Temporizador/Contador). Especificacin Detallada para PIC16F84A. En este artculo, explicar los datos especficos del registro TMR0 para este PIC.

Especificaciones del temporizador (TMR0)


La figura que sigue se muestra el temporizador (TMR0) y el temporizador perro guardin (WDT) en diagrama de bloques. Al pi de la figura (en amarillo) los bits relacionados, de cada registro que afecta el ajuste de los temporizadores.

El Preescaler que, est en el centro de la figura, puede ser usado por el TMR0 o por el WDT. La figura anterior muestra el preescaler conectado a TMR0. El bit PSA (bit 3) del OPTION_REG determina a cual de los dos es conectado el preescaler. El preescaler es un contador programable cuyo rango es determinado por los bits PS0, PS1, PS2 (bits 0, 1 y 2) de OPTION_REG. TMR0 es un contador binario de 8 bit que puede contar hasta 256. Cuando el contador rebasa la cuenta de 255 (FFh) a 0 (00h) ocurre una interrupcin por desbordamiento y el bit T0IF (bit 2) del registro INTCON es puesto a 1. El hardware est diseado tal que cuando ambos el GIE (bit 7) yTOIE (bit 5) del registro INTCON son H ("1") la interrupcin ocurre y el PC (program counter) va la direccin 004h, para comenzar la operacin de programa. Una cuenta 256 de TMR0, a veces es corta. Por ejemplo, cuando el reloj interno es 20MHz, la frecuencia de entrada del contador es 5MHz. (Fosc/4). El perodo de este pulso de reloj es de 200ns (1 / 5Mhz = 0.2 s.). Para desbordar el TMR0 se necesitan 0.2 s. x 256 (51.2 s.). Entonces para ampliar este perodo se usa el preescaler. El preescaler se puede usar para dividir la entrada por 2, 4, 8, 16, 32, 64, 128, o 256. Por ejemplo, cuando el preescaler es puesto para dividir por 2, hay 1 pulso de salida por cada 2 pulsos de entrada al preescaler. Si ponemos a 256, habr 1 pulso de salida por cada 256 pulsos entrada. As que, el tiempo de desbordamiento de TMR0 se puede hacer ms largo modificando el valor del preescaler. En el ejemplo anterior cuando el preescaler fue puesto a 256, el tiempo de desbordamiento

Potrebbero piacerti anche