Microchip Technology MA160014 Data Sheet

Page of 560
 2010-2012 Microchip Technology Inc.
DS41412F-page 183
PIC18(L)F2X/4XK22
14.2
Compare Mode
The Compare mode function described in this section
is identical for all CCP and ECCP modules available on
this device family.
Compare mode makes use of the 16-bit TimerX
resources, Timer1, Timer3 and Timer5. The 16-bit
value of the CCPRxH:CCPRxL register pair is
constantly compared against the 16-bit value of the
TMRxH:TMRxL register pair. When a match occurs,
one of the following events can occur:
• Toggle the CCPx output
• Set the CCPx output
• Clear the CCPx output
• Generate a Special Event Trigger
• Generate a Software Interrupt
The action on the pin is based on the value of the
CCPxM<3:0> control bits of the CCPxCON register. At
the same time, the interrupt flag CCPxIF bit is set.
All Compare modes can generate an interrupt.
 shows a simplified diagram of the
Compare operation.
FIGURE 14-2:
COMPARE MODE 
OPERATION BLOCK 
DIAGRAM
14.2.1
CCP PIN CONFIGURATION
The user must configure the CCPx pin as an output by
clearing the associated TRIS bit.
Some CCPx outputs are multiplexed on a couple of
pins. 
 shows the CCP output pin
Multiplexing. Selection of the output pin is determined
by the CCPxMX bits in Configuration register 3H
(CONFIG3H). Refer to 
 for more details.
14.2.2
TimerX MODE RESOURCE
In Compare mode, 16-bit TimerX resource must be
running in either Timer mode or Synchronized Counter
mode. The compare operation may not work in
Asynchronous Counter mode.
See 
 for more information on configuring the 16-bit
TimerX resources.
14.2.3
SOFTWARE INTERRUPT MODE 
When Generate Software Interrupt mode is chosen
(CCPxM<3:0> = 1010), the CCPx module does not
assert control of the CCPx pin (see the CCPxCON
register).
CCPRxH CCPRxL
TMRxH
TMRxL
Comparator
Q
S
R
Output
Logic
Special Event Trigger
Set CCPxIF Interrupt Flag
(PIR1/2/4)
Match
TRIS
CCPxM<3:0>
Mode Select
Output Enable
Pin
Special Event Trigger function on
ECCP1, ECCP2, ECCP3, CCP4 and CCP5 will:
-
Reset TimerX – TMRxH:TMRxL = 0x0000
-
TimerX Interrupt Flag, (TMRxIF) is not set
Additional Function on
CCP5 will
-
 Set ADCON0<1>, GO/DONE bit to start an ADC 
Conversion if ADCON<0>, ADON = 1. 
CCPx
4
Note:
Clearing the CCPxCON register will force
the CCPx compare output latch to the
default low level. This is not the PORT I/O
data latch.
Note:
Clocking TimerX from the system clock
(F
OSC
) should not be used in Compare
mode. In order for Compare mode to
recognize the trigger event on the CCPx
pin, TimerX must be clocked from the
instruction clock (F
OSC
/4) or from an
external clock source.