![](http://datasheet.mmic.net.cn/260000/PIC876_datasheet_15943118/PIC876_48.png)
PIC16F87X
DS30292B-page 48
1999 Microchip Technology Inc.
5.2
Using Timer0 with an External Clock
When no prescaler is used, the external clock input is
the same as the prescaler output. The synchronization
of T0CKI with the internal phase clocks is accom-
plished by sampling the prescaler output on the Q2 and
Q4 cycles of the internal phase clocks. Therefore, it is
necessary for T0CKI to be high for at least 2Tosc (and
a small RC delay of 20 ns) and low for at least 2Tosc
(and a small RC delay of 20 ns). Refer to the electrical
specification of the desired device.
5.3
Prescaler
There is only one prescaler available, which is mutually
exclusively shared between the Timer0 module and the
watchdog timer. A prescaler assignment for the Timer0
module means that there is no prescaler for the watch-
dog timer, and vice-versa. This prescaler is not readable
or writable (see Figure 5-1).
The PSA and PS2:PS0 bits (OPTION_REG<3:0>) deter-
mine the prescaler assignment and prescale ratio.
When assigned to the Timer0 module, all instructions
writing to the TMR0 register (e.g.
CLRF
1,
MOVWF
1,
BSF
1,x
....etc.) will clear the prescaler. When assigned
to WDT, a
CLRWDT
instruction will clear the prescaler
along with the Watchdog Timer. The prescaler is not
readable or writable.
REGISTER 5-1:
OPTION_REG REGISTER
Note:
Note:
Writing to TMR0, when the prescaler is
assigned to Timer0, will clear the prescaler
count, but will not change the prescaler
assignment.
R/W-1
RBPU
bit 7
R/W-1
INTEDG
R/W-1
T0CS
R/W-1
T0SE
R/W-1
PSA
R/W-1
PS2
R/W-1
PS1
R/W-1
PS0
R
W = Writable bit
U
= Unimplemented bit,
read as ‘0’
- n = Value at POR reset
= Readable bit
bit 0
bit 7:
bit 6:
bit 5:
RBPU
INTEDG
T0CS
: TMR0 Clock Source Select bit
1
= Transition on T0CKI pin
0
= Internal instruction cycle clock (CLKOUT)
T0SE
: TMR0 Source Edge Select bit
1
= Increment on high-to-low transition on T0CKI pin
0
= Increment on low-to-high transition on T0CKI pin
PSA
: Prescaler Assignment bit
1
= Prescaler is assigned to the WDT
0
= Prescaler is assigned to the Timer0 module
PS2:PS0
: Prescaler Rate Select bits
bit 4:
bit 3:
bit 2-0:
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
Bit Value
TMR0 Rate
WDT Rate
To avoid an unintended device RESET, the instruction sequence s
hown in the PICmicro Mid-Range MCU
Family Reference Manual (DS33023) must be executed when changing the prescaler assignment from
Timer0 to the WDT. This sequence must be followed even if the WDT is disabled.