Datasheet

PIC12F510/16F506
DS41268D-page 42 © 2007 Microchip Technology Inc.
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)
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
(WDTTIMER0)
FIGURE 6-5: BLOCK DIAGRAM OF THE TIMER0/WDT PRESCALER
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
CLRWDT ;Clear WDT and
;prescaler
MOVLW ‘xxxx0xxx’ ;Select TMR0, new
;prescale value and
;clock source
OPTION
TCY (= FOSC/4)
Sync
2
Cycles
TMR0 Reg
8-bit Prescaler
8-to-1 MUX
M
MUX
Watchdog
Timer
PSA
(1)
0
1
0
1
WDT
Time-Out
PS<2:0>
(1)
8
PSA
(1)
WDT Enable bit
0
1
0
1
Data Bus
8
PSA
(1)
T0CS
(1)
M
U
X
M
U
X
U
X
T0SE
(1)
T0CKI
(2)
Pin
Note 1: T0CS, T0SE, PSA, PS<2:0> are bits in the OPTION register.
2: T0CKI is shared with pin GP2 on the PIC12F510 and shared with RC5 on the PIC16F506.
3: Bit C1T0CS
is located in the CM1CON0 register.
1
0
Comparator
Output
C1T0CS
(3)