Datasheet

1997-2013 Microchip Technology Inc. DS30561C-page 43
PIC12C67X
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).
EXAMPLE 7-1: CHANGING PRESCALER
(TIMER0WDT)
BCF STATUS, RP0 ;Bank 0
CLRF TMR0 ;Clear TMR0 & Prescaler
BSF STATUS, RP0 ;Bank 1
CLRWDT ;Clears WDT
MOVLW b'xxxx1xxx' ;Select new prescale
MOVWF OPTION_REG ;value & WDT
BCF STATUS, RP0 ;Bank 0
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 sequence must
be followed even if the WDT is disabled.
To change prescaler from the WDT to the Timer0 mod-
ule, use the sequence shown in Example 7-2.
EXAMPLE 7-2: CHANGING PRESCALER
(WDTTIMER0)
CLRWDT ;Clear WDT and
;prescaler
BSF STATUS, RP0 ;Bank 1
MOVLW b'xxxx0xxx' ;Select TMR0, new
;prescale value and
MOVWF OPTION_REG ;clock source
BCF STATUS, RP0 ;Bank 0
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’s register xxxx xxxx uuuu uuuu
0Bh/8Bh INTCON GIE
PEIE T0IE INTE GPIE T0IF INTF GPIF 0000 000x 0000 000u
81h OPTION
GPPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
85h TRIS
TRIS5 TRIS4 TRIS3 TRIS2 TRIS1 TRIS0 --11 1111 --11 1111
Legend: x = unknown, u = unchanged, - = unimplemented locations read as '0'. Shaded cells are not used by Timer0.