Los impulsos aplicados al TIMER0 pueden provenir de los pulsos aplicados al pin TOCKI o de la señal de reloj interna (Fosc/4), lo que permite actuar de dos formas diferentes:
· Como contador de los impulsos que le llegaran por el RA4/TOCKI.
· Como temporizador de tiempos.
A veces es necesario controlar los tiempos largos y aumentar la duración de los impulsos que incrementan en el TMR0. Para cubrir esta necesidad se dispone de un circuito programable llamado Divisor de frecuencia o Prescaler que divide la frecuencia utilizada por diversos rangos para poder conseguir temporizaciones más largas.
El prescaler puede aplicarse a uno de los temporizadores, al TMR0 o al Watchog. Cuando se asigna al TMR0 los impulsos pasan primero por el divisor de frecuencia y una vez aumenta su duración se aplica el TMR0.
Para controlar el comportamiento del TMR0 se utilizan algunos bits de los registros OPTION e INTCON.
Del registro INTCON.
GIE
|
EEIE
|
TOIE
|
INTE
|
RBIE
|
TOIF
|
INTF
|
RBIF
|
BIT 7
|
BIT 6
|
BIT 5
|
BIT 4
|
BIT 3
|
BIT 2
|
BIT 1
|
BIT 0
|
· TOIF (TMR0 Overflow Interrupt Flag Bit). Flag de interrupcion del TMR0. Indica que se ha producido un desbordamiento del Timer 0, que ha pasado de b’11111111’ a b’00000000’.
o TOIF=0, el TMR0 no se ha desbordado.
o TOIF=1, El TMR0 se ha desbordado. (Debe borrarse por software).
Del registro OPTION
/RBPU
|
INTDEG
|
TOCS
|
TOSE
|
PSA
|
PS1
|
PS2
|
PS0
|
BIT 7
|
BIT 6
|
BIT 5
|
BIT 4
|
BIT 3
|
BIT 2
|
BIT 1
|
BIT 0
|
PS2:PS0. (Prescaler Rate Selec Bits). Bits para seleccionar los valores del prescaler o rango con el que actúa el divisor de frecuencia.
· PSA (Prescaler Assignment Bit). Asignación del divisor de frecuencia:
o PSA=0, El divisor de frecuencia se asigna al TMR0.
o PSA=1, El divisor de frecuencia se asigna al Watchdog.
PS2 PS1 PS2
|
Divisor del TMR0
|
Divisor del WDT
|
000
001
010
011
100
101
110
111
|
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
|
1:1
1:2
1:4
1:8
1:16
1:32
1:64
1:128
|
· TOSE (TMR0 Source Edge Selec Bit). Selecciona flanco de la señal de entrada del TMR0.
o TOSE=0, TMR0 se incrementa en cada flanco ascendente de la señal aplicada.
o TOSE=1, TMR0 se incrementa en cada flanco descendente de la señal aplicada.
· TOCS (TMR0 Clock Source Select Bit). Selecciona la fuente de señal del TMR0.
o TOCS=0, Pulsos de reloj interno Fosc/4 (TMR0 como temporizador).
o TOCS=1, Pulsos introducidos a través del pin RA4/TOCKI (TMR0 como contador).
No hay comentarios:
Publicar un comentario