4. 4
MÓDULO TIMER0 (2)MÓDULO TIMER0 (2)
•Generación de interrupción opcional en el
desbordamiento.
•Selección del flanco para el reloj externo.
•Se debe configurar así:
1. Ingresar al banco 1
2. Configurar el Timero (contador o timer)
3. Regresar al banco o
4. Cargar el valor del TMR0 (inicializar la cuenta)
5. 5
MÓDULO TIMER0 (3)MÓDULO TIMER0 (3)
Cuando el módulo funciona como temporizador el
registro TMR0 se incrementa en cada ciclo de
instrucción (sin Preescalamiento).
Cuando se escribe el registro TMR0,el
microcontrolador debe esperar 2 ciclos de
instrucción para que comience a contar.
7. 7
MÓDULO TIMER0 (5)MÓDULO TIMER0 (5)
Como se aprecia en la parte superior derecha esta
presente un MUX. El MUX es controlado por el bit
T0CS, si es 0 el módulo opera como temporizador; si
es 1 como contador de eventos.
El bit TOCS pertenece al registro OPTION_REG y es
el bit 5.
8. 8
MÓDULO TIMER0 (6)MÓDULO TIMER0 (6)
Cuando el módulo trabaja como contador de
eventos el registro TMR0 incrementa su valor cada
vez que aparece un flanco en el pin RA4/TOCKI.
La selección del tipo de flanco (subida o bajada)
dependerá de la programación del bit TOSE
(registro OPTION_REG bit 4). Si TOSE es 0 trabaja
con flanco de subida si es 1 con flanco de bajada.
9. 9
MÓDULO TIMER0 (7)MÓDULO TIMER0 (7)
El preescaler es mutuamente excluyente y
compartido por le Timer0 y el Watchdog. No es
leíble ni escribible. El preescaler es como un divisor
de frecuencia programable. Como se aprecia puede
conectarse en serie al modulo timer0
(dependiendo de los valores de TOCS y PSA).
Supongamos que el módulo timer0 funciona como
contador de eventos y el preescaler esta habilitado.
10. 10
MÓDULO TIMER0 (8)MÓDULO TIMER0 (8)
El valor es 1:1, eso significa que cada pulso que
ingrese incrementará el valor en el registro TMR0
(el valor máximo de cuentas será 256) . Si el
preescaler vale 1:8 por cada 8 eventos que
sucedan solo aumentará una cuenta en el registro
TMR0 (el valor máximo de cuentas será 8x256).
11. 11
MÓDULO TIMER0 (9)MÓDULO TIMER0 (9)
El valor del preescaler depende de los bits PS2 (bit
2), PS1(bit 1) y PS0 (bit 0) del registro OPTION_REG.
El bit PSA (bit 3) del registro INTCON define si el el
preescaler funciona con el Watchdog o con el Timer
0.