PIC16F631/677/685/687/689/690
5.0
TIMER0 MODULE
5.1
Timer0 Operation
The Timer0 module is an 8-bit timer/counter with the
following features:
•
•
•
•
•
8-bit timer/counter register (TMR0)
8-bit prescaler (shared with Watchdog Timer)
Programmable internal or external clock source
Programmable external clock edge selection
Interrupt on overflow
When used as a timer, the Timer0 module can be used
as either an 8-bit timer or an 8-bit counter.
5.1.1
8-BIT TIMER MODE
When used as a timer, the Timer0 module will
increment every instruction cycle (without prescaler).
Timer mode is selected by clearing the T0CS bit of the
OPTION register to ‘0’.
When TMR0 is written, the increment is inhibited for
two instruction cycles immediately following the write.
Note:
The value written to the TMR0 register can
be adjusted, in order to account for the two
instruction cycle delay when TMR0 is
written.
5.1.2
8-BIT COUNTER MODE
When used as a counter, the Timer0 module will
increment on every rising or falling edge of the T0CKI
pin. The incrementing edge is determined by the T0SE
bit of the OPTION register. Counter mode is selected by
setting the T0CS bit of the OPTION register to ‘1’.
FIGURE 5-1:
F
OSC
/4
BLOCK DIAGRAM OF THE TIMER0/WDT PRESCALER
Data Bus
0
1
1
T0CKI
pin
T0SE
T0CS
1
8
0
0
8-bit
Prescaler
PSA
Set Flag bit T0IF
on Overflow
Sync 2
cycles
TMR0
8
WDTE
SWDTEN
PSA
PS<2:0>
16-bit
Prescaler
31 kHz
INTOSC
Watchdog
Timer
WDTPS<3:0>
Note
1:
2:
3:
T0SE, T0CS, PSA, PS<2:0> are bits in the OPTION register.
SWDTEN and WDTPS<3:0> are bits in the WDTCON register.
WDTE bit is in the Configuration Word register.
1
WDT
Time-out
0
16
PSA
©
2007 Microchip Technology Inc.
DS41262D-page 81