PIC14000
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)
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>
7.CLRWDT
; are 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 Timer0
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)
CLRWDT
;Clear WDT and
;prescaler
BSF
STATUS, RP0
MOVLW B'xxxx0xxx' ;Select TMR0, new
;prescale value and
;clock source
MOVWF OPTION
BCF
STATUS, RP0
TABLE 6-1: SUMMARY OF TIMER0 REGISTERS
Register Name
Function
Address
TMR0
Timer/counter register
01h
OPTION
Configuration and prescaler assign-
81h
ment bits for TMR0.
INTCON
TMR0 overflow interrupt flag and
0Bh
mask bits.
Legend: x = unknown,
Note 1: For reset values of registers in other reset situations refer to Table 10-4.
TABLE 6-2: REGISTERS ASSOCIATED WITH TIMER0
Power-on Reset Value
xxxx xxxx
1111 1111
0000 000x
Address Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
01h
TMR0
0Bh/8Bh INTCON GIE
PEIE
TIMER0 TIMER/COUNTER
T0IE
r
r
T0IF
81h
OPTION RCPU
r
T0CS
T0SE
PSA
PS2
87h
TRISC TRISC7 TRISC6 TRISC5
Legend: r = Reserved locations
Shaded boxes are not used by Timer0 module
TRISC4
TRISC3
TRISC2
Bit 1
r
PS1
TRISC1
Bit 0
r
PS0
TRISC0
DS40122B-page 40
Preliminary
© 1996 Microchip Technology Inc.