Timer 0
FACULTAD DE CIENCIAS DE LA ELECTRONICA
Licenciatura en Ingeniería Mecatrónica
Exposición de manejos de recursos hardware en
MPASM y PIC C (Timer 0)
Nombres: Amastal Pérez Jesus Albino
Matriculas:201922120
¿Qué es ?
• A pesar del Timer 0 ser de 8 bits, este es el temporizador principal.
•
• El Timer0 pic también llamado RTCC se puede cargar con un valor cualquiera entre 0 y
255 y puede ser incrementado a través del Reloj interno y dividido por un valor que se
puede escoger entre los que se indican a continuación. Esto se conoce como el valor del
preescalador (Valor de Preescaler)
¿Que es un preescalador?
• Un preescalador o preescaler como lo pudimos observar en los valores
anteriores predefinidos en el PIC C Compiler, es simplemente la velocidad del
microcontrolador dividido por algún número de potencia 2 (2, 4, 8, 16, 32, 64,
128, 256)
Aplicaciones del timer 0
• Modo de operación como temporizador o contador, ambos casos con resolución de 8 y 16
bits.
• Registros de lectura y escritura, ósea que podemos inicializarlo en un algún valor
deseado.
• Prescaler programable de 8 bits.
• Permite usar una fuente de reloj externa o interna.
• Para el modo de contador permite seleccionar con que flanco se activa al momento de
conectarle el reloj externo.
1. Interrupción por desborde (overflow), ósea que cuando este llegue a una
cuenta deseada podemos atenderla con alguna interrupción, cuando esto pase
el programa abandona temporalmente lo que estaba haciendo para atender la
subrutina de interrupción, pero antes guarda en una región especial de la
memoria llamada pila la dirección de la siguiente instrucción de programa, para
que cuando acabe la subrutina de interrupción pueda seguir ejecutando el
programa por donde se había quedado.
• Interrupción en el TIMER0
• El modulo del TIMER0 también puede generar una interrupción si se es necesario. El
modo en que lo hace es por desbordamiento, entiéndase por desbordamiento al momento
en el que llega a su número máximo 255 y pasa de nuevo a 0. En ese punto el modulo
puede emitir una señal de interrupción al microcontrolador, la cual podemos usar en
distintas aplicaciones.
• Registro OPTION_REG
• Los bits WPUEN e INTEDG no tienen que ver en la
configuración del TIMER0, por tanto los vamos a
omitir, para conocer su funcionamiento puedes ver
Interrupción por Pin Externo o Interrupción por Cambio
Registros en Puerto.
•TMR0CS: Selección de fuente de conteo para TIMER0
•1 = Conteo por pulso externo en el pin T0CKI (RA4)
•0 = Conteo por ciclos de reloj del oscilador interno (Fosc/4).
•TMR0SE: Selección de flanco para conteo por pulso externo en pin T0CKI
•1 = Incremento por flanco de bajada en T0CKI
•0 = Incremento por flanco de subida en T0CKI
• PSA: Asignación de preescala
•
• 1 = La preescala se asigna al perro guardián (WDT)
•
• 0 = La preescala se asigna al módulo TIMER0
•
• PS<2:0> Relación de incremento según la preescala
Entendamos un poco más qué hace cada bit.
• TMR0CS: Selección de fuente de conteo para TIMER0, nos permite seleccionar de qué
modo vamos a usar el TIMER0, si como contador de eventos externos a través del pin
T0CKI o como temporizador basándonos en los ciclos del reloj del microcontrolador
generados a través del oscilador.
• La frecuencia que toma el temporizador será de una cuarta parte de la frecuencia de
nuestro oscilador, es decir que si tenemos uno de 4MHz, la frecuencia del TIMER0 será de
1MHz. Partiendo de eso podemos calcular tiempos.
• TMR0SE: Selección de flanco para conteo por pulso externo en pin T0CKI, como contador
de eventos digitales el TIMER0 puede registrar pulsos o cambios de flanco en el pin T0CKI
destinado para tal fin, se pueden contar las pulsaciones de un botón, las vueltas de un
motor a través de un encoder, entre otros usos. Este bit nos permite según nuestra
necesidad, realizar el conteo por flanco de subida o flanco de bajada.
• PSA, PS y Qué es la preescala: Anteriormente comentamos que el registro donde se realiza
el conteo es de ocho bits, es decir que como máximo puede realizar conteos desde 0 hasta
255, que a la hora de la verdad es una cifra muy pequeña, es por eso que se ha llegado a
la solución de dar una preescala al módulo con fin de realizar conteos más amplios
Diagrama de
flujo
Desarrollo
Funciones
para las
interrupciones
Vector de
interrupcion
Vector de
interrupción
Conclusión
• Gracias a este reporte finalmente podemos decir que el uso del timer 0 en el uso de
microcontroladores es bastante útil al momento de querer implementar algo dentro de esta
área de la electrónica, por otra parte su uso como temporizador es bastante socorrido y
utilizado ya que es una forma bastante accesible para poder mostrar sus funcionamiento
como contador y dando un retraso en las señales.