Uso de tmr en mikroc para pic
DEFINICION
TEMPORIZADOR. TEMPORIZADOR - Dispositivo periférico programable que tiene la facultad de contar pulsos de reloj o pulsos externos al sistema.
TEMPORIZADOR 1, 2, 3, 4, 5, 6, 7, 8,... Registro de conteo de pulsos
1 2 3 4 5 6 7 8
Temporizador
Microcontrolador Dispositivo externo Timer/contador
Oscilador
Selección Temporizador o Contador de eventosexternos
Temporizador
Preescalador (divisor de frecuencia).frecuencia).Toma N pulsos de entrada y genera un solo pulso de salida.
1 2 3 4 5 6 7 8
No usa el preescalador
1 2 3 4 5 6 7 8
Generador de pulsos Preescalador 2:1 P l d 21 Preescalador 4:1
. . .
Al temporizador p
Preescalador 256:1
Temporizador
1 2 3 4 5 6 7 8
Generador de l d pulsos Usa el preescaladorPreescalador 2:1
1
2
3
4
Al temporizador
1 2 3 4 5 6 7 8
Generador de pulsos Usa el preescalador p Preescalador 4:1
1
2
Al temporizador
Temporizador Postescalador (divisor de frecuencia).frecuencia).Cuenta el número de veces que se desborda el timer. Cuando se cumple el número predeterminado se activa la bandera del temporizador
1 2 3 4 1 2 3 4
Temporizador/ contador td
Postescalador 1:1 Se desborda 4 veces el timer Se activa 4 veces la bandera
TF
Temporizador
1 2 3 4 1 2
Temporizador/ T i d / contador
Postescalador 2:1 Se desborda 4 veces el timer Se activa 2 veces la bandera
TF
1
2
3
4
1
Temporizador/ contador d
Se desborda 4 veces el timer
Postescalador 4:1 Se activa 1 vez la bandera
TFTemporizador/contador
El PIC16F877 tiene 3 timer/counter (temporizador/contador) • TMR0 Contador de 8 bits, con un pre-escalador de 8 prerelaciones (2, 4, 8, 16, 32,64, 128, 256) l i • TMR1 Contador de 16 bits, con un pre-escalador de 4 bits prerelaciones (2, 4, 8, 16) • TMR2 Contador de 8 bits, con un pre-escalador (1, 4, pre16), un post-escalador (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, post12, 13 14 15 12 13, 14,15, 16) y un registro de periodo PR2
TIMER 0
Temporizador de pulsos de reloj interno y contador de pulsos externos.
TIMER0
Este temporizador/contador tiene un registro de conteo de pulsos, que se denomina de la misma forma TMR0 TMR0. Es E accesible d d código, se puede ibl desde ódi d verificar su valor por programa.
TIMER0
El conteo de este registro es incremental. Cuando sedesborda se necesita desborda, recargar el valor de conteo, para evitar conteos erróneos erróneos.
Se quiere contar 5 pulsos pero no se recarga el valor de conteo.
TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0
. . .
Se quiere contar 4 pulsos y se recarga el valor de conteo.
TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 TMR0 = = = = = = = = = = = = 252 253 254 255 0 252 253254 255 0 252 253 cargamos el valor inicial l l i i i l
= = = = = = = = = = = =
251 252 253 254 255 0 1 2 3 4 5 6
cargamos el valor inicial l l l
desborde del timer
desborde del timer recargamos el valor inicial
no hay desborde
desborde del timer recargamos el valor inicial
TMR0 (registro OPTION_REG) OPTION_REG)
Bit
7 6 5
Nombre
/RBPU INTEDG TOCS
Función
Activalas resistencias de PULL UP del puerto B. Selecciona el filo de activación de la interrupción externa. Selección de fuente de entrada de pulso para el TMR0 1 = Incremento del contador por pulso en la terminal T0CKI 0 = Pulso interno cada ciclo de maquina (CLKOUT) Selección del filo de incremento del TMR0 1 = Incremento en transición negativa en la terminal T0CKI 0 = Incremento en transiciónpositiva en la terminal T0CKI Asignación del preescalador 1 = El Preescalador es asignado al WDT 0 = El Preescalador es asignado al modulo Timer0 Selección de la escala del Preescalador Valor escala TMR0 escala WDT 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1 : 16 1:8 100 1 : 32 1 : 16 101 1 : 64 1 : 32 110 1 : 128 1 : 64 111 1 : 256 1 : 128
4
TOSE
3
PSA
0-2
PS2 PS1 PS0
TMR0...
Regístrate para leer el documento completo.