Datasheet
2003 Microchip Technology Inc. DS30235J-page 35
PIC16C62X
6.3.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 WDT.)
EXAMPLE 6-1: CHANGING PRESCALER
(TIMER0→WDT)
To change prescaler from the WDT to the TMR0
module, use the sequence shown in Example 6-2. This
precaution must be taken even if the WDT is disabled.
EXAMPLE 6-2: CHANGING PRESCALER
(WDT→TIMER0)
TABLE 6-1: REGISTERS ASSOCIATED WITH TIMER0
1.BCF STATUS, RP0 ;Skip if already in
;Bank 0
2.CLRWDT ;Clear WDT
3.CLRF TMR0 ;Clear TMR0 & Prescaler
4.BSF STATUS, RP0 ;Bank 1
5.MOVLW '00101111’b; ;These 3 lines (5, 6, 7)
6.MOVWF OPTION ;are required only if
;desired PS<2:0> are
7.CLRWDT ;000 or 001
8.MOVLW '00101xxx’b ;Set Postscaler to
9.MOVWF OPTION ;desired WDT rate
10.BCF STATUS, RP0 ;Return to Bank 0
CLRWDT ;Clear WDT and
;prescaler
BSF STATUS, RP0
MOVLW b'xxxx0xxx' ;Select TMR0, new
;prescale value and
;clock source
MOVWF OPTION_REG
BCF STATUS, RP0
Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Value on
POR
Value on
All Other
RESETS
01h TMR0 Timer0 module register xxxx xxxx uuuu uuuu
0Bh/8Bh INTCON
GIE
PEIE T0IE INTE RBIE T0IF INTF RBIF
0000 000x 0000 000u
81h OPTION
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
1111 1111 1111 1111
85h TRISA
— — — TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
---1 1111 ---1 1111
Legend: — = Unimplemented locations, read as ‘0’, u = unchanged, x = unknown
Note: Shaded bits are not used by TMR0 module.