PIC12C5XX
DS40139A-page 24
Advance Information
1996 Microchip Technology Inc.
6.2
Prescaler
An 8-bit counter is available as a prescaler for the
Timer0 module, or as a postscaler for the Watchdog
Timer (WDT), respectively (Section 7.6). For simplicity,
this counter is being referred to as “prescaler”
throughout this data sheet. Note that the prescaler
may be used by either the Timer0 module or the WDT,
but not both. Thus, a prescaler assignment for the
Timer0 module means that there is no prescaler for
the WDT, and vice-versa.
The
PSA
and
PS2:PS0
determine 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 WDT. The prescaler is neither
readable nor writable. On a RESET, the prescaler
contains all '0's.
bits
(OPTION<3:0>)
6.2.1
SWITCHING PRESCALER ASSIGNMENT
The prescaler assignment is fully under software control
(i.e., it can be changed “on the fly” during program
execution). To avoid an unintended device RESET, the
following instruction sequence (Example 6-1) must be
executed when changing the prescaler assignment from
Timer0 to the WDT.
EXAMPLE 6-1:
CHANGING PRESCALER
(TIMER0
→
WDT)
;Clear TMR0
;Clears WDT and
;prescaler
'xxxx1xxx'
;Select new prescale
;value
To change prescaler from the WDT to the Timer0
module, use the sequence shown in Example 6-2. This
sequence must be used even if the WDT is disabled. A
CLRWDT
instruction should be executed before switching
the prescaler.
CLRF
CLRWDT
TMR0
MOVLW
OPTION
EXAMPLE 6-2:
CHANGING PRESCALER
(WDT
→
TIMER0)
;Clear WDT and
;prescaler
'xxxx0xxx'
;Select TMR0, new
;prescale value and
;clock source
CLRWDT
MOVLW
OPTION
FIGURE 6-5:
BLOCK DIAGRAM OF THE TIMER0/WDT PRESCALER
T
CY
( = Fosc/4)
Sync
2
Cycles
TMR0 reg
8-bit Prescaler
8 - to - 1MUX
M
U
X
MUX
Watchdog
Timer
PSA
0
1
0
1
WDT
Time-Out
PS2:PS0
8
Note: T0CS, T0SE, PSA, PS2:PS0 are bits in the OPTION register.
PSA
WDT Enable bit
0
1
0
1
Data Bus
8
PSA
T0CS
M
U
X
M
U
X
T0SE
GP2/T0CKI
Pin