
1999 Microchip Technology Inc.
DS40182C-page 39
PIC16CE62X
7.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
prescaler assignment from Timer0 to WDT.
EXAMPLE 7-1:
CHANGING PRESCALER
(TIMER0
→WDT)
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
To change prescaler from the WDT to the TMR0
precaution must be taken even if the WDT is disabled.
EXAMPLE 7-2:
CHANGING PRESCALER
(WDT
→TIMER0)
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
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:
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
85h
TRISA
—
—TRISA4
TRISA3
TRISA2
TRISA1
TRISA0
---1 1111
Legend: — = Unimplemented locations, read as ‘0’, x = unknown, u = unchanged.
Note:
Shaded bits are not used by TMR0 module.