PIC16C926-I/CL Microchip Technology, PIC16C926-I/CL Datasheet - Page 51

no-image

PIC16C926-I/CL

Manufacturer Part Number
PIC16C926-I/CL
Description
64/68-Pin CMOS Microcontrollers with LCD Driver
Manufacturer
Microchip Technology
Datasheet
6.3
If control bit T1SYNC (T1CON<2>) is set, the external
clock input is not synchronized. The timer continues to
increment asynchronous to the internal phase clocks.
The timer will continue to run during SLEEP and can
generate an interrupt-on-overflow which will wake-up
the processor. However, special precautions in soft-
ware are needed to read from, or write to the Timer1
register pair (TMR1H:TMR1L) (Section 6.3.2).
In Asynchronous Counter mode, Timer1 cannot be
used as a time-base for capture or compare opera-
tions.
6.3.1
If control bit T1SYNC is set, the timer will increment
completely asynchronously. The input clock must meet
certain minimum high time and low time requirements,
as specified in timing parameters 45, 46, and 47.
EXAMPLE 6-1:
; All interrupts are disabled
;
;
; TMR1L may have rolled over between the read of the high and low bytes.
; Reading the high and low bytes now will read a good value.
;
; Re-enable the Interrupt (if required)
;
CONTINUE
2001 Microchip Technology Inc.
Timer1 Operation in
Asynchronous Counter Mode
EXTERNAL CLOCK INPUT TIMING
WITH UNSYNCHRONIZED CLOCK
MOVF
MOVWF
MOVF
MOVWF
MOVF
SUBWF
BTFSC
GOTO
MOVF
MOVWF
MOVF
MOVWF
TMR1H, W
TMPH
TMR1L, W
TMPL
TMR1H, W
TMPH,
STATUS,Z
CONTINUE
TMR1H, W
TMPH
TMR1L, W
TMPL
READING A 16-BIT FREE-RUNNING TIMER
W
;Read high byte
;
;Read low byte
;
;Read high byte
;Sub 1st read with 2nd read
;Is result = 0
;Good 16-bit read
;Read high byte
;
;Read low byte
;
;Continue with your code
Preliminary
6.3.2
Reading TMR1H or TMR1L, while the timer is running
from an external asynchronous clock, will ensure a
valid read (taken care of in hardware). However, the
user should keep in mind that reading the 16-bit timer
in two 8-bit values itself, poses certain problems, since
the timer may overflow between the reads.
For writes, it is recommended that the user simply stop
the timer and write the desired values. A write conten-
tion may occur by writing to the timer registers while the
register is incrementing. This may produce an unpre-
dictable value in the timer register.
Reading the 16-bit value requires some care.
Example 6-1 is an example routine to read the 16-bit
timer value. This is useful if the timer cannot be
stopped.
READING AND WRITING TMR1 IN
ASYNCHRONOUS COUNTER
MODE
PIC16C925/926
DS39544A-page 49

Related parts for PIC16C926-I/CL