PIC16C62X
6.3.1
SWITCHING PRESCALER ASSIGNMENT
The prescaler assignment is fully under software
control (i.e., it can be changed 鈥渙n the 铿倅鈥?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.
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鈫扵IMER0)
;Clear WDT and
;prescaler
CLRWDT
EXAMPLE 6-1:
1.BCF
CHANGING PRESCALER
(TIMER0鈫扺DT)
BSF
MOVLW
STATUS, RP0
b'xxxx0xxx'
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鈥檅; ;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鈥檅 ;Set Postscaler to
9.MOVWF OPTION
; desired WDT rate
10.BCF
STATUS, RP0 ;Return to Bank 0
;Select TMR0, new
;prescale value and
;clock source
MOVWF
BCF
OPTION_REG
STATUS, RP0
TABLE 6-1:
Address
01h
0Bh/8Bh
81h
85h
Name
TMR0
REGISTERS ASSOCIATED WITH TIMER0
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Value on
POR
Value on
All Other
Resets
Timer0 module register
GIE
RBPU
鈥?/div>
PEIE
INTEDG
鈥?/div>
T0IE
T0CS
鈥?/div>
INTE
T0SE
TRISA4
RBIE
PSA
TRISA3
T0IF
PS2
TRISA2
INTF
PS1
TRISA1
RBIF
PS0
TRISA0
xxxx xxxx uuuu uuuu
0000 000x 0000 000u
1111 1111 1111 1111
---1 1111 ---1 1111
INTCON
OPTION
TRISA
Legend: 鈥?= Unimplemented locations, read as 鈥?鈥?
Note:
Shaded bits are not used by TMR0 module.
u = unchanged
x = unknown
漏
1998 Microchip Technology Inc.
Preliminary
DS30235G-page 35
prev
next