PIC16C9XX
7.3.1 SWITCHING PRESCALER ASSIGNMENT
The prescaler assignment is fully under software con-
trol, i.e., it can be changed “on the fly” during program
execution.
Note:
To avoid an unintended device RESET, the
following instruction sequence (shown in
Example 7-1) must be executed when
changing the prescaler assignment from
Timer0 to the WDT. This precaution must
be followed even if the WDT is disabled.
EXAMPLE 7-1: CHANGING PRESCALER (TIMER0→WDT)
1) BSF STATUS, RP0
Lines 2 and 3 do NOT have to 2) MOVLW b'xx0x0xxx'
be included if the final desired 3) MOVWF OPTION_REG
prescale value is other than 1:1. 4) BCF
If 1:1 is final desired value, then
a temporary prescale value is 5) CLRF
set in lines 2 and 3 and the final 6) BSF
STATUS, RP0
TMR0
STATUS, RP1
prescale value will be set in lines 7) MOVLW b'xxxx1xxx'
10 and 11.
8) MOVWF OPTION_REG
9) CLRWDT
10) MOVLW b'xxxx1xxx'
11) MOVWF OPTION_REG
12) BCF STATUS, RP0
;Select Bank1
;Select clock source and prescale value of
;other than 1:1
;Select Bank0
;Clear TMR0 and prescaler
;Select Bank1
;Select WDT, do not change prescale value
;
;Clears WDT and prescaler
;Select new prescale value and WDT
;
;Select Bank0
To change prescaler from the WDT to the Timer0 mod-
ule use the precaution shown in Example 7-2.
EXAMPLE 7-2: CHANGING PRESCALER (WDT→TIMER0)
CLRWDT
BSF
MOVLW
MOVWF
BCF
;Clear WDT and prescaler
STATUS, RP0 ;Select Bank1
b'xxxx0xxx' ;Select TMR0, new prescale value and
OPTION_REG ;clock source
STATUS, RP0 ;Select Bank0
TABLE 7-1: REGISTERS ASSOCIATED WITH TIMER0
Address Name Bit 7 Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Value on
Power-on
Reset
Value on all
other resets
01h, 101h TMR0 Timer0 module’s register
xxxx xxxx uuuu uuuu
0Bh, 8Bh, INTCON GIE
10Bh, 18Bh
PEIE
T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
81h, 181h OPTION RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
85h
TRISA
—
— PORTA Data Direction Control Register
--11 1111 --11 1111
Legend: x = unknown, u = unchanged, - = unimplemented locations read as '0'. Shaded cells are not used by Timer0.
© 1997 Microchip Technology Inc.
DS30444E - page 49