Datasheet

PIC18F97J94 FAMILY
DS30575A-page 482 2012 Microchip Technology Inc.
EXAMPLE 22-6: CONVERTING A SINGLE CHANNEL, ONCE PER INTERRUPT, DUAL BUFFER
MODE
22.8.3.1 Using Alternating MUX A and MUX
B Input Selections
Figure 22-19 and Example 22-7 demonstrate alternate
sampling of the inputs assigned to MUX A and MUX B.
Setting the ALTS bit enables alternating input selec-
tions. The first sample uses the MUX A inputs specified
by the CH0SAx and CH0NAx bits. The next sample
uses the MUX B inputs, specified by the CH0SBx and
CH0NBx bits.
This example also demonstrates use of the dual,
8-word buffers. An interrupt occurs after every 8th
sample, resulting in filling eight words into the buffer on
each interrupt.
A/D Configuration:
Select AN3 for S/H+ Input (CH0SA<4:0> = 00011)
•Select V
R- for S/H- Input (CH0NA<2:0> = 000)
Configure for No Input Scan (CSCNA = 0)
Use Only MUX A for Sampling (ALTS = 0)
Set AD1IF on Every Sample (SMPI<4:0> = 00000)
Configure Buffer as Dual, 8-Word Segments (BUFM = 1)
Operational Sequence:
1. Sample MUX A Input, AN3; Convert and Write to Buffer 0h.
2. Set AD1IF Flag (and generate interrupt, if enabled); Write Access Automatically
Switches to Alternate Buffer.
3. Sample MUX A Input, AN3; Convert and Write to Buffer 8h.
4. Set AD1IF Flag (and generate interrupt, if enabled); Write Access Automatically
Switches to Alternate Buffer.
5. Repeat (1-4).
Results Stored in Buffer (after 2 cycles):
Buffer
Address
Buffer Contents
at 1st AD1IF Event
Buffer Contents
at 2nd AD1IF Event
ADC1BUF0 Sample 1 (AN3, Sample 1) (undefined)
ADC1BUF1 (undefined) (undefined)
ADC1BUF2 (undefined) (undefined)
ADC1BUF3 (undefined) (undefined)
ADC1BUF4 (undefined) (undefined)
ADC1BUF5 (undefined) (undefined)
ADC1BUF6 (undefined) (undefined)
ADC1BUF7 (undefined) (undefined)
ADC1BUF8 (undefined) Sample 2 (AN3, Sample 2)
ADC1BUF9 (undefined) (undefined)
ADC1BUFA (undefined) (undefined)
ADC1BUFB (undefined) (undefined)
ADC1BUFC (undefined) (undefined)
ADC1BUFD (undefined) (undefined)
ADC1BUFE (undefined) (undefined)
ADC1BUFF (undefined) (undefined)