




<root>
<device name='18F87J72' product='PIC' cal='PIC' family='18F' bits='8' >
    <clock max_speed='40000000' master_divider='4' default='19660800' />
    <memory >
        <flash bytes='131072' />
        <ram bytes='3923' />
    </memory>

    <configuration address='1' mult='2' >
        <format >
        </format>
        <setting />
        <settings >
            <setting name='WDTEN' offset='0' mask='0xFFFF' bits='16' hint='Watchdog Timer' >
                <option name='Enabled' value='0x1' />
                <option name='Disabled-Controlled by SWDTEN bit' value='0x0' />
            </setting>
            <setting name='STVREN' offset='16' mask='0xFFFF' bits='16' hint='Stack Overflow Reset' >
                <option name='Enabled' value='0x1' />
                <option name='Disabled' value='0x0' />
            </setting>
            <setting name='XINST' offset='32' mask='0xFFFF' bits='16' hint='Extended Instruction Set Enable bit' >
                <option name='Enabled' value='0x1' />
                <option name='Disabled' value='0x0' />
            </setting>
            <setting name='CP0' offset='48' mask='0xFFFF' bits='16' hint='Code Protect' >
                <option name='Disabled' value='0x1' />
                <option name='Enabled' value='0x0' />
            </setting>
            <setting name='OSC' offset='64' mask='0xFFFF' bits='16' hint='Oscillator Selection bits' >
                <option name='EC Oscillator with PLL' value='0x7' />
                <option name='EC Oscillator with clock out on RA6' value='0x6' />
                <option name='HS oscillator, PLL enabled' value='0x5' />
                <option name='HS oscillator' value='0x4' />
                <option name='INTOSC with PLL enabled, CLKOUT on RA6 and port function on RA7' value='0x3' />
                <option name='Internal oscillator, CLKOUT on RA6 and port function on RA7' value='0x2' />
                <option name='INTOSC with PLL enabled, port function on RA6 and RA7' value='0x1' />
                <option name='Internal oscillator, port function on RA6 and RA7' value='0x0' />
            </setting>
            <setting name='T1DIG' offset='80' mask='0xFFFF' bits='16' hint='Secondary Clock Source T1OSCEN Enforcement' >
                <option name='Secondary Oscillator clock source may be selected' value='0x1' />
                <option name='Secondary Oscillator clock source may not be selected' value='0x0' />
            </setting>
            <setting name='LPT1OSC' offset='96' mask='0xFFFF' bits='16' hint='Low-Power Timer1 Oscillator Enable bit' >
                <option name='Timer1 oscillator configured for low-power operation' value='0x0' />
                <option name='Timer1 oscillator configured for higher power operation' value='0x1' />
            </setting>
            <setting name='FCMEN' offset='112' mask='0xFFFF' bits='16' hint='Fail-Safe Clock Monitor Enable bit' >
                <option name='Fail-Safe Clock Monitor disabled' value='0x0' />
                <option name='Fail-Safe Clock Monitor enabled' value='0x1' />
            </setting>
            <setting name='IESO' offset='128' mask='0xFFFF' bits='16' hint='Two-Speed Start-up (Internal/External Oscillator Switchover) Control bit' >
                <option name='Two-Speed Start-up disabled' value='0x0' />
                <option name='Two-Speed Start-up enabled' value='0x1' />
            </setting>
            <setting name='WDTPS' offset='144' mask='0xFFFF' bits='16' hint='Watchdog Timer Postscaler Select bits' >
                <option name='1:32768' value='0xf' />
                <option name='1:16384' value='0xe' />
                <option name='1:8192' value='0xd' />
                <option name='1:4096' value='0xc' />
                <option name='1:2048' value='0xb' />
                <option name='1:1024' value='0xa' />
                <option name='1:512' value='0x9' />
                <option name='1:256' value='0x8' />
                <option name='1:128' value='0x7' />
                <option name='1:64' value='0x6' />
                <option name='1:32' value='0x5' />
                <option name='1:16' value='0x4' />
                <option name='1:8' value='0x3' />
                <option name='1:4' value='0x2' />
                <option name='1:2' value='0x1' />
                <option name='1:1' value='0x0' />
            </setting>
            <setting name='RTCSOSC' offset='160' mask='0xFFFF' bits='16' hint='RTCC Reference Clock Select bit' >
                <option name='RTCC uses T1OSC/T1CKI as reference clock' value='0x1' />
                <option name='RTCC uses INTOSC/INTRC as reference clock' value='0x0' />
            </setting>
            <setting name='CCP2MX' offset='176' mask='0xFFFF' bits='16' hint='CCP2 MUX' >
                <option name='RE7' value='0x0' />
                <option name='RC1' value='0x1' />
            </setting>
        </settings >
    </configuration>
    <pins sides='4' smd='1' >
        <pin name='CH0+' />
		<pin name='CH0-' />
 	    <pin name='RE1' port='4' bit='1' />
		<pin name='RE0' port='4' bit='0' />
		<pin name='RG0' port='6' bit='0' />
        <pin name='RG1/TX2/CK2' port='6' bit='1' />
		<pin name='RG2/RX2' port='6' bit='2' />
        <pin name='RG3' port='6' bit='3' />
        <pin name='MCLR' /> 
		<pin name='RG4/RTCC' port='6' bit='4' />
		<pin name='VSS' />
		<pin name='VDDCORE/VCAP' />
        <pin name='RF7/AN5' port='5' bit='7' adc='5'/>
        <pin name='RF6/AN11' port='5' bit='6' adc='11' />
        <pin name='RF5/AN10/CVREF' port='5' bit='5' adc='10' />
        <pin name='RF4/AN9' port='5' bit='4' adc='9' />
        <pin name='RF3/AN8' port='5' bit='3' adc='8' />
        <pin name='RF2/AN7/C1OUT' port='5' bit='2' adc='7' />
        <pin name='CH1-' />
		<pin name='CH1+' />
        <pin name='RF1/AN6/C2OUT' port='5' bit='1' adc='6' />
        <pin name='ENVREG' />
        <pin name='AVDD' />
        <pin name='AVSS' />
	    <pin name='RA3/AN3/VREF+' port='0' bit='3' adc='3' />
        <pin name='SAVSS' />
        <pin name='RA2/AN2/VREF-' port='0' bit='2' adc='2' />
        <pin name='REFIN+/OUT' />
        <pin name='REFIN-' />
        <pin name='RA1/AN1' port='0' bit='1' adc='1' />
        <pin name='RA0/AN0' port='0' bit='0' adc='0' />
        <pin name='VSS' />
        <pin name='RA5/AN4' port='0' bit='5' adc='4' />
        <pin name='RA4/T0CKI' port='0' bit='4' />
        <pin name='RC1/T1OSOI/CCP2' port='2' bit='1' />
        <pin name='SVSS' />
        <pin name='RC0/T1OSO/T13CKI' port='2' bit='0' />
        <pin name='RC6/TX1/CK1' port='2' bit='6' />
        <pin name='RC7/RX1/DT1' port='2' bit='7' />
        <pin name='DR' />
        <pin name='CLKIA' />
        <pin name='RC2/CCP1' port='2' bit='2' />
        <pin name='RC3/SCK/SCL' port='2' bit='3' />
        <pin name='RC4/SDI/SDA' port='2' bit='4' />
        <pin name='RC5/SDO' port='2' bit='5' />
        <pin name='RB7/KBI3/PGD' port='1' bit='7' />
        <pin name='VDD' />
        <pin name='OSC1/CLKI/RA7'  port='0' bit='7' />
        <pin name='OSC2/CLKO/RA6'  port='0' bit='6' />
        <pin name='VSS' />
        <pin name='RB6/KBI2/PGC' port='1' bit='6' />
        <pin name='RB5/KBI1' port='1' bit='5' />
        <pin name='RB4/KBI0' port='1' bit='4' />
        <pin name='RB3/INT3' port='1' bit='3' />
        <pin name='RB2/INT2' port='1' bit='2' />
        <pin name='RB1/INT1' port='1' bit='1' />
		<pin name='RB0/INT0/FLT0' port='1' bit='0' />
        <pin name='CSA' /> 
        <pin name='SCKA' />
        <pin name='SDOA' />	   
        <pin name='RD7' port='3' bit='7' />
        <pin name='RD6' port='3' bit='6' />
        <pin name='RD5' port='3' bit='5' />
        <pin name='SDIA' />	   
        <pin name='RD4' port='3' bit='4' />
        <pin name='RD3' port='3' bit='3' />
        <pin name='RD2' port='3' bit='2' />
        <pin name='RD1' port='3' bit='1' />
        <pin name='ARESET' />	   
        <pin name='SVDD' />
        <pin name='VSS' />
        <pin name='VDD' />
        <pin name='RD0' port='3' bit='0' />
        <pin name='SAVDD' />
        <pin name='RE7/CCP2' port='4' bit='7' />
        <pin name='RE6/COM3' port='4' bit='6' />
        <pin name='RE5/COM2' port='4' bit='5' />
        <pin name='RE4/COM1' port='4' bit='4' />
        <pin name='RE3/COM0' port='4' bit='3' />
        <pin name='RE2' port='4' bit='2' />
    </pins>
    <adc type='12' bits='10' >
        <speed >
            <option name='Fosc / 2' value='0' />
            <option name='Fosc / 8' value='1' />
            <option name='Fosc / 32' value='2' />
            <option name='FRC' value='3' />
            <option name='Fosc / 4' value='4' />
            <option name='Fosc / 16' value='5' />
            <option name='Fosc / 64' value='6' />
        </speed>
    </adc>
    <spi >
        <miso port='2' pin='4' />
        <mosi port='2' pin='5' />
        <clk port='2' pin='3' />
        <ss port='5' pin='7' />
    </spi>
    <uart >
        <tx port='2' pin='6' />
        <rx port='2' pin='7' />
    </uart>
    <i2c master='1' >
        <sda port='2' pin='4' />
        <scl port='2' pin='3' />
    </i2c>
    <pwm>
    	<timer>
    	    <option name='Timer2' value='2' />
    	</timer>
        <prescaler >
            <option name='1' value='1' />
            <option name='4' value='4' />
            <option name='16' value='16' />
        </prescaler>
        <out port='2' pin='2' />
        <out port='2' pin='1' />
        <out port='3' pin='1' />
        <out port='3' pin='2' />
        <out port='6' pin='4' />
    </pwm>
    <intosc>
        <option name='31000' value='OSCCON = 0x00;' default='1' />  
    </intosc>
    <interrupts >
        <interrupt ident='TMR0' regl='TMR0' regh='' type='timer8' name='Timer 0' handler='#ifndef MX_INTHANDLER_INTCON_TMR0IF\n#define MX_INTHANDLER_INTCON_TMR0IF\nif (ts_bit(INTCON, TMR0IF) &amp;&amp; ts_bit(INTCON, TMR0IE))\n{\n\tFCM_%n();\n\tcr_bit(INTCON, TMR0IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(INTCON, TMR0IE);\n' disable='cr_bit(INTCON, TMR0IE);\n' >
            <timer overflow='256' extrange='0' />
            <options >
                <option name='Clock Source Select' >
                    <entry name='Transition on T0CKI pin' clkdiv='0' value='st_bit(T0CON, T0CS);\n' />
                    <entry name='Internal clock (CLKO)' clkdiv='4' value='cr_bit(T0CON, T0CS);\n' />
                </option>
                <option name='Source Edge Select' >
                    <entry name='high-to-low transition on TMR0 Clock' value='st_bit(T0CON, T0SE);\n' />
                    <entry name='low-to-high transition on TMR0 Clock' value='cr_bit(T0CON, T0SE);\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T0CON = (T0CON &amp; 0xF0) | 0x08;\n' />
                    <entry name='1:2' value='T0CON = (T0CON &amp; 0xF0) | 0x00;\n' />
                    <entry name='1:4' value='T0CON = (T0CON &amp; 0xF0) | 0x01;\n' />
                    <entry name='1:8' value='T0CON = (T0CON &amp; 0xF0) | 0x02;\n' />
                    <entry name='1:16' value='T0CON = (T0CON &amp; 0xF0) | 0x03;\n' />
                    <entry name='1:32' value='T0CON = (T0CON &amp; 0xF0) | 0x04;\n' />
                    <entry name='1:64' value='T0CON = (T0CON &amp; 0xF0) | 0x05;\n' />
                    <entry name='1:128' value='T0CON = (T0CON &amp; 0xF0) | 0x06;\n' />
                    <entry name='1:256' value='T0CON = (T0CON &amp; 0xF0) | 0x07;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='INT0' type='pin' name='INT0 Pin' handler='#ifndef MX_INTHANDLER_INTCON_INT0IF\n#define MX_INTHANDLER_INTCON_INT0IF\nif (ts_bit(INTCON, INT0IF) &amp;&amp; ts_bit(INTCON, INT0IE))\n{\n\tFCM_%n();\n\tcr_bit(INTCON, INT0IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(INTCON, INT0IE);\n' disable='cr_bit(INTCON, INT0IE);\n' >
            <ioc config='3' >
                <rising port='1' mask='1' />
                <falling port='1' mask='1' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='st_bit(INTCON2, INTEDG0);\n' />
                    <entry name='Falling edge of INT' value='cr_bit(INTCON2, INTEDG0);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='IOC0' type='multipin' name='IOC PORTB' handler='#ifndef MX_INTHANDLER_INTCON_RBIF\n#define MX_INTHANDLER_INTCON_RBIF\nchar mxtmp;\nif (ts_bit(INTCON, RBIF) &amp;&amp; ts_bit(INTCON, RBIE))\n{\n\tFCM_%n();\n\tmxtmp=PORTB;\n\tcr_bit(INTCON, RBIF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(INTCON, RBIE);\n' disable='cr_bit(INTCON, RBIE);\n' >
            <ioc config='4' >
                <rising port='1' mask='0xF0' />
                <falling port='1' mask='0xF0' />
            </ioc>
            <options >
                <option name='Interrupt Pins' >
                    <entry name='RB4 - RB7' value='' />
                </option>
            </options>             
        </interrupt>
        <interrupt ident='TMR1' regl='TMR1L' regh='TMR1H' type='timer16' name='Timer 1' handler='#ifndef MX_INTHANDLER_PIR1_TMR1IF\n#define MX_INTHANDLER_PIR1_TMR1IF\nif (ts_bit(PIR1, TMR1IF) &amp;&amp; ts_bit(PIE1, TMR1IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR1, TMR1IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(INTCON, PEIE);\nst_bit(PIE1, TMR1IE);\n' disable='cr_bit(PIE1, TMR1IE);\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <option name='Clock Source Select' >
                    <entry name='Transition on T1CKI pin' clkdiv='0' value='cr_bit(T1CON, T1OSCEN);\nst_bit(T1CON, TMR1ON);\nst_bit(T1CON, TMR1CS);\n' />
                    <entry name='Internal clock (Fosc/4)' clkdiv='4' value='cr_bit(T1CON, T1OSCEN);\nst_bit(T1CON, TMR1ON);\ncr_bit(T1CON, TMR1CS);\n' />
                    <entry name='32.768KHz XTAL T1CKI/T1CKO' clkdiv='0' value='st_bit(T1CON, T1OSCEN);\nst_bit(T1CON, TMR1ON);\nst_bit(T1CON, TMR1CS);\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T1CON = T1CON &amp; 0xCF;\n' />
                    <entry name='1:2' value='T1CON = (T1CON &amp; 0xCF) | 0x10;\n' />
                    <entry name='1:4' value='T1CON = (T1CON &amp; 0xCF) | 0x20;\n' />
                    <entry name='1:8' value='T1CON = (T1CON &amp; 0xCF) | 0x30;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='INT1' type='pin' name='INT1 Pin' handler='#ifndef MX_INTHANDLER_INTCON3_INT1IF\n#define MX_INTHANDLER_INTCON3_INT1IF\nif (ts_bit(INTCON3, INT1IF) &amp;&amp; ts_bit(INTCON3, INT1IE))\n{\n\tFCM_%n();\n\tcr_bit(INTCON3, INT1IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(INTCON3, INT1IE);\n' disable='cr_bit(INTCON3, INT1IE);\n' >
            <ioc config='3' >
                <rising port='1' mask='2' />
                <falling port='1' mask='2' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='st_bit(INTCON2, INTEDG1);\n' />
                    <entry name='Falling edge of INT' value='cr_bit(INTCON2, INTEDG1);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT2' type='pin' name='INT2 Pin' handler='#ifndef MX_INTHANDLER_INTCON3_INT2IF\n#define MX_INTHANDLER_INTCON3_INT2IF\nif (ts_bit(INTCON3, INT2IF) &amp;&amp; ts_bit(INTCON3, INT2IE))\n{\n\tFCM_%n();\n\tcr_bit(INTCON3, INT2IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(INTCON3, INT2IE);\n' disable='cr_bit(INTCON3, INT2IE);\n' >
            <ioc config='3' >
                <rising port='1' mask='4' />
                <falling port='1' mask='4' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='st_bit(INTCON2, INTEDG2);\n' />
                    <entry name='Falling edge of INT' value='cr_bit(INTCON2, INTEDG2);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT3' type='pin' name='INT3 Pin' handler='#ifndef MX_INTHANDLER_INTCON3_INT3IF\n#define MX_INTHANDLER_INTCON3_INT3IF\nif (ts_bit(INTCON3, INT3IF) &amp;&amp; ts_bit(INTCON3, INT3IE))\n{\n\tFCM_%n();\n\tcr_bit(INTCON3, INT3IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(INTCON3, INT3IE);\n' disable='cr_bit(INTCON3, INT3IE);\n' >
            <ioc config='3' >
                <rising port='1' mask='8' />
                <falling port='1' mask='8' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='st_bit(INTCON2, INTEDG3);\n' />
                    <entry name='Falling edge of INT' value='cr_bit(INTCON2, INTEDG3);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='RXINT0' type='comms' name='UART RXINT0' handler='#ifndef MX_INTHANDLER_PIR1_RC1IF\n#define MX_INTHANDLER_PIR1_RC1IF\nif (ts_bit(PIR1, RC1IF) &amp;&amp; ts_bit(PIE1, RC1IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR1, RC1IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif' enable='st_bit(INTCON, PEIE);\nst_bit(PIE1, RC1IE);\n' disable='cr_bit(PIE1, RC1IE);\n' />
        <interrupt ident='TXINT0' type='comms' name='UART TXINT0' handler='#ifndef MX_INTHANDLER_PIR1_TX1IF\n#define MX_INTHANDLER_PIR1_TX1IF\nif (ts_bit(PIR1, TX1IF) &amp;&amp; ts_bit(PIE1, TX1IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR1, TX1IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif' enable='st_bit(INTCON, PEIE);\nst_bit(PIE1, TX1IE);\n' disable='cr_bit(PIE1, TX1IE);\n' />
        <interrupt ident='TMR2' regl='TMR2' regh='' type='timer8' name='Timer 2' handler='#ifndef MX_INTHANDLER_PIR1_TMR2IF\n#define MX_INTHANDLER_PIR1_TMR2IF\nif (ts_bit(PIR1, TMR2IF) &amp;&amp; ts_bit(PIE1, TMR2IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR1, TMR2IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif' enable='st_bit(INTCON, PEIE);\nst_bit(PIE1, TMR2IE);\n' disable='cr_bit(PIE1, TMR2IE);\n' >
            <timer overflow='256' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='cr_bit(T2CON, T2CKPS0);\ncr_bit(T2CON, T2CKPS1);\nst_bit(T2CON, TMR2ON);\n' />
                    <entry name='1:4' value='st_bit(T2CON, T2CKPS0);\ncr_bit(T2CON, T2CKPS1);\nst_bit(T2CON, TMR2ON);\n' />
                    <entry name='1:16' value='cr_bit(T2CON, T2CKPS0);\nst_bit(T2CON, T2CKPS1);\nst_bit(T2CON, TMR2ON);\n' />
                </prescale>
                <postscale name='Postscaler Rate' >
                    <entry name='1:1' value='T2CON = T2CON &amp; 0x07;\n' />
                    <entry name='1:2' value='T2CON = (T2CON &amp; 0x07) | 0x08;\n' />
                    <entry name='1:3' value='T2CON = (T2CON &amp; 0x07) | 0x10;\n' />
                    <entry name='1:4' value='T2CON = (T2CON &amp; 0x07) | 0x18;\n' />
                    <entry name='1:5' value='T2CON = (T2CON &amp; 0x07) | 0x20;\n' />
                    <entry name='1:6' value='T2CON = (T2CON &amp; 0x07) | 0x28;\n' />
                    <entry name='1:7' value='T2CON = (T2CON &amp; 0x07) | 0x30;\n' />
                    <entry name='1:8' value='T2CON = (T2CON &amp; 0x07) | 0x38;\n' />
                    <entry name='1:9' value='T2CON = (T2CON &amp; 0x07) | 0x40;\n' />
                    <entry name='1:10' value='T2CON = (T2CON &amp; 0x07) | 0x48;\n' />
                    <entry name='1:11' value='T2CON = (T2CON &amp; 0x07) | 0x50;\n' />
                    <entry name='1:12' value='T2CON = (T2CON &amp; 0x07) | 0x58;\n' />
                    <entry name='1:13' value='T2CON = (T2CON &amp; 0x07) | 0x60;\n' />
                    <entry name='1:14' value='T2CON = (T2CON &amp; 0x07) | 0x68;\n' />
                    <entry name='1:15' value='T2CON = (T2CON &amp; 0x07) | 0x70;\n' />
                    <entry name='1:16' value='T2CON = (T2CON &amp; 0x07) | 0x78;\n' />
                </postscale>
                <rollover name='Rollover Value' >
                    <entry name='256' min='1' max='256' value='PR2=%d-1;\n' />
                </rollover>
            </options>
        </interrupt>
        <interrupt ident='TMR3' regl='TMR3L' regh='TMR3H' type='timer16' name='Timer 3' handler='#ifndef MX_INTHANDLER_PIR2_TMR3IF\n#define MX_INTHANDLER_PIR2_TMR3IF\nif (ts_bit(PIR2, TMR3IF) &amp;&amp; ts_bit(PIE2, TMR3IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR2, TMR3IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(INTCON, PEIE);\nst_bit(PIE2, TMR3IE);\n' disable='cr_bit(PIE2, TMR3IE);\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <option name='Clock Source Select' >
                    <entry name='Transition on T3CKI pin' clkdiv='0' value='st_bit(T3CON, TMR3ON);\nst_bit(T3CON, TMR3CS);\n' />
                    <entry name='Internal clock (Fosc/4)' clkdiv='4' value='st_bit(T3CON, TMR3ON);\ncr_bit(T3CON, TMR3CS);\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T3CON = T3CON &amp; 0xCF;\n' />
                    <entry name='1:2' value='T3CON = (T3CON &amp; 0xCF) | 0x10;\n' />
                    <entry name='1:4' value='T3CON = (T3CON &amp; 0xCF) | 0x20;\n' />
                    <entry name='1:8' value='T3CON = (T3CON &amp; 0xCF) | 0x30;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='SSP0' type='comms' name='Synchronous Serial Port1' handler='#ifndef MX_INTHANDLER_PIR1_SSP1IF\n#define MX_INTHANDLER_PIR1_SSP1IF\nif (ts_bit(PIR1, SSP1IF) &amp;&amp; ts_bit(PIE1, SSP1IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR1, SSP1IF);\n}\n#else\n#warning &quot;This interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.&quot;\n#endif\n' enable='st_bit(PIE1, SSP1IE);\nst_bit(INTCON, PEIE);\n' disable='cr_bit(PIE1, SSP1IE);\n' />
    </interrupts>
</device>
<inline >
    <defines code="#define TXIF TX1IF\n#define TXIE TX1IE\n#define RXIF RX1IF\n#define RXIE RX1IE\n\n" />
    <directives code="#include &lt;xc.h&gt;\n#include &lt;math.h&gt;\n\n" />
    <main >
        <start code='\nvoid main()\n{\n\t#ifdef INTOSCHELPER\n\t\tINTOSCHELPERCODE\n\t#endif\n\n' />
        <end code='\tmainendloop: goto mainendloop;\n}\n\n' />
        <init code='ADCON1 = 0x0F;\n' />
    </main>
    <interrupt >
        <enable code='st_bit(INTCON, GIE);\n' />
        <start code='void MX_INTERRUPT_MACRO(void)\n{\n' />
        <end code='}\n\n' />
        <init code='\n\n' />
    </interrupt>
    <config >
	<start code='//Chip Configuration Settings\n' />
        <body code='__PROG_CONFIG($(address), 0x$(value:x));\n' /> 
    </config>
</inline>
<test >
    <icd >
        <clock port='1' pin='6' />
        <data port='1' pin='7' />
    </icd>
</test>
</root>
