English
Language : 

PIC16F627A_05 Datasheet, PDF (49/180 Pages) Microchip Technology – Flash-Based, 8-Bit CMOS Microcontrollers with nanoWatt Technology
PIC16F627A/628A/648A
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). Use the instruction sequences
shown in Example 6-1 when changing the prescaler
assignment from Timer0 to WDT, to avoid an
unintended device Reset.
EXAMPLE 6-1:
CHANGING PRESCALER
(TIMER0 → WDT)
BCF
STATUS, RP0
CLRWDT
CLRF TMR0
;Skip if already in
;Bank 0
;Clear WDT
;Clear TMR0 and
BSF
STATUS, RP0
MOVLW '00101111’b
MOVWF OPTION_REG
CLRWDT
MOVLW
MOVWF
BCF
'00101xxx’b
OPTION_REG
STATUS, RP0
;Prescaler
;Bank 1
;These 3 lines
;(5, 6, 7)
;are required only
;if desired PS<2:0>
;are
;000 or 001
;Set Postscaler to
;desired WDT rate
;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
BSF
STATUS, RP0
MOVLW b'xxxx0xxx’
MOVWF OPTION_REG
BCF
STATUS, RP0
;Clear WDT and
;prescaler
;Select TMR0, new
;prescale value and
;clock source
TABLE 6-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, 101h TMR0
0Bh, 8Bh,
10Bh, 18Bh
INTCON
Timer0 Module Register
GIE PEIE T0IE
INTE
RBIE
T0IF
INTF
xxxx xxxx uuuu uuuu
RBIF 0000 000x 0000 000u
81h, 181h OPTION(2) RBPU INTEDG T0CS T0SE PSA
PS2
PS1
PS0 1111 1111 1111 1111
85h
TRISA
TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111
Legend: - = Unimplemented locations, read as ‘0’, u = unchanged, x = unknown. Shaded cells are not used for Timer0.
Note 1: Option is referred by OPTION_REG in MPLAB® IDE Software.
© 2005 Microchip Technology Inc.
DS40044D-page 47