PIC10F220/222
6.2.1
SWITCHING PRESCALER
ASSIGNMENT
The prescaler assignment is fully under software
control (i.e., it can be changed “on-the-fly” during pro-
gram 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)
CLRWDT
;Clear WDT
CLRF TMR0
;Clear TMR0 & Prescaler
MOVLW ‘00xx1111’b ;These 3 lines (5, 6, 7)
OPTION
;are required only if
;desired
CLRWDT
;PS<2:0> are 000 or 001
MOVLW ‘00xx1xxx’b ;Set Postscaler to
OPTION
;desired WDT rate
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.
EXAMPLE 6-2:
CHANGING PRESCALER
(WDT→TIMER0)
CLRWDT
MOVLW ‘xxxx0xxx’
OPTION
;Clear WDT and
;prescaler
;Select TMR0, new
;prescale value and
;clock source
FIGURE 6-5:
BLOCK DIAGRAM OF THE TIMER0/WDT PRESCALER
TCY (= FOSC/4)
GP2/T0CKI(2)
Pin
0
M
U
1X
1
M
U
0X
Sync
2
Cycles
T0SE(1)
T0CS(1)
PSA(1)
Data Bus
8
TMR0 Reg
Watchdog
Timer
WDT Enable bit
0
M
U
1X
PSA(1)
8-bit Prescaler
8
8-to-1 MUX
PS<2:0>(1)
0
1
MUX
PSA(1)
WDT
Time-Out
Note 1: T0CS, T0SE, PSA, PS<2:0> are bits in the OPTION register.
2: T0CKI is shared with pin GP2 on the PIC10F220/222.
DS41270B-page 28
Preliminary
© 2006 Microchip Technology Inc.