<root>
<device name='16F1516' product='PIC' cal='PIC' family='16F' bits='8' >
    <clock max_speed='20000000' master_divider='4' default='19660800' />
    <memory >
        <flash bytes='14336' />
        <ram bytes='512' />
    </memory>
    <configuration address='1' mult='2' >
	<format >
	  <word value='0x3FFF' />
	  <word value='0x3FFF' />
        </format>
        <setting />
        <settings >
            <setting name='FOSC' offset='0' mask='7' bits='3' hint='Oscillator' >
                <option name='ECH, External Clock, High Power Mode: CLKIN on RA5/OSC1/CLKIN' value='7' />
                <option name='ECM, External Clock, Medium Power Mode: CLKIN on RA5/OSC1/CLKIN' value='6' />
                <option name='ECL, External Clock, Low Power Mode: CLKIN on RA5/OSC1/CLKIN' value='5' />
                <option name='INTOSC Oscillator, I/O function on RA5/OSC1/CLKIN' value='4' />
                <option name='EXTRC RA5/OSC1/CLKIN' value='3' />
                <option name='HS Oscillator' value='2' />
                <option name='XT Oscillator' value='1' />
                <option name='LP Oscillator' value='0' />
            </setting>
            <setting name='WDTE' offset='3' mask='3' bits='2' hint='Watchdog Timer Enable bit' >
                <option name='Enabled' value='3' />
                <option name='WDT enabled while running and disabled in Sleep' value='2' />
                <option name='WDT controlled by the SWDTEN bit in the WDTCON register' value='1' />
                <option name='Disabled' value='0' />
            </setting>
            <setting name='PWRTE' offset='5' mask='1' bits='1' hint='Power-up Timer Enable bit' >
                <option name='Disabled' value='1' />
                <option name='Enabled' value='0' />
            </setting>
            <setting name='MCLRE' offset='6' mask='1' bits='1' hint='MCLR Pin Function Select' >
                <option name='Enabled' value='1' />
                <option name='Disabled - MCLR pin can be used as an Digital Input' value='0' />
            </setting>
            <setting name='CP' offset='7' mask='1' bits='1' hint='Flash Program Memory Code Protection bit' >
                <option name='Disabled' value='1' />
                <option name='Enabled' value='0' />
            </setting>
            <setting name='BOREN' offset='9' mask='3' bits='2' hint='Brown-out Reset Enable bits' >
                <option name='Enabled' value='3' />
                <option name='Brown-out Reset enabled while running and disabled in Sleep' value='2' />
                <option name='Brown-out Reset controlled by the SBOREN bit in the PCON register' value='1' />
                <option name='Disabled' value='0' />
            </setting>
            <setting name='CLKOUTEN' offset='11' mask='1' bits='1' hint='Clock Out Enable bit' >
                <option name='Disabled' value='1' />
                <option name='Enabled' value='0' />
            </setting>
            <setting name='IESO' offset='12' mask='1' bits='1' hint='Internal External Switchover bit' >
                <option name='Enabled' value='1' />
                <option name='Disabled' value='0' />
            </setting>
            <setting name='FCMEN' offset='13' mask='1' bits='1' hint='Fail Safe Clock Monitor bit' >
                <option name='Enabled' value='1' />
                <option name='Disabled' value='0' />
            </setting>
            <setting name='WRT' offset='16' mask='3' bits='2' hint='Flash memory self-write protection bits' >
                <option name='Disabled' value='3' />
                <option name='000h to 1FFh write protected, 200h to 7FFh may be modified by EECON control' value='2' />
                <option name='000h to 3FFh write protected, 400h to 7FFh may be modified by EECON control' value='1' />
                <option name='000h to 7FFh write protected, no addresses may be modified by EECON control' value='0' />
            </setting>
            <setting name='VCAP' offset='20' mask='1' bits='1' hint='Voltage Regulator Capacitor bit' >
                <option name='Disabled' value='1' />
                <option name='VCAP Enabled on RA5' value='0' />
            </setting>
            <setting name='STVREN' offset='25' mask='1' bits='1' hint='Stack Overflow/Underflow Reset Enable bit' >
                <option name='Enabled' value='1' />
                <option name='Disabled' value='0' />
            </setting>
            <setting name='BORV' offset='26' mask='1' bits='1' hint='Brown-out Reset Voltage selection' >
                <option name='Brown-out Reset Voltage (VBOR) set to 1.9 V' value='1' />
                <option name='Brown-out Reset Voltage (VBOR) set to 2.7 V' value='0' />
            </setting>
            <setting name='LPBOR' offset='27' mask='1' bits='1' hint='Low Power BOR Mode' >
                <option name='Disabled' value='1' />
                <option name='Enabled' value='0' />
            </setting>
            <setting name='DEBUG' offset='28' mask='1' bits='1' hint='Debug Mode' >
                <option name='Disabled' value='1' />
                <option name='Enabled, B6 and B7 are dedicated to the debugger' value='0' />
            </setting>
            <setting name='LVP' offset='29' mask='1' bits='1' hint='Low Voltage Programming Enable bit' >
                <option name='LVP Enabled' value='1' />
                <option name='LVP Disabled' value='0' />
            </setting>
        </settings>
    </configuration>
    <pins sides='2' smd='0' >
        <pin name='MCLR/VPP/RE3' port='4' bit='3' />
        <pin name='RA0/AN0' port='0' bit='0' adc='0' />
        <pin name='RA1/AN1' port='0' bit='1' adc='1' />
        <pin name='RA2/AN2' port='0' bit='2' adc='2' />
        <pin name='RA3/AN3/VREF+' port='0' bit='3' adc='3' />
        <pin name='RA4/T0CKI' port='0' bit='4' />
        <pin name='RA5/AN4' port='0' bit='5' adc='4' />
        <pin name='VSS' />
        <pin name='OSC1/CLKI/RA7' port='0' bit='7' />
        <pin name='OSC2/CLKO/RA6' port='0' bit='6' />
        <pin name='RC0/SOSCO/T1CKI' port='2' bit='0' />
        <pin name='RC1/SOSCI/CCP2' port='2' bit='1' />
        <pin name='RC2/CCP1/AN14' port='2' bit='2' adc='14' />
        <pin name='RC3/SCK/SCL/AN15' port='2' bit='3' adc='15' />
        <pin name='RC4/SDI/SDA/AN16' port='2' bit='4' adc='16' />
        <pin name='RC5/SDO/AN17' port='2' bit='5' adc='17' />
        <pin name='RC6/TX/CK/AN18' port='2' bit='6' adc='18' />
        <pin name='RC7/RX/DT/AN19' port='2' bit='7' adc='19' />
        <pin name='VSS' />
        <pin name='VDD' />
        <pin name='RB0/INT/AN12' port='1' bit='0' adc='12' />
        <pin name='RB1/AN10' port='1' bit='1' adc='10' />
        <pin name='RB2/AN8' port='1' bit='2' adc='8' />
        <pin name='RB3/CCP2(1)/AN9' port='1' bit='3' adc='9' />
        <pin name='RB4/AN11' port='1' bit='4' adc='11' />
        <pin name='RB5/AN13' port='1' bit='5' adc='13' />
        <pin name='RB6/PGC' port='1' bit='6' />
        <pin name='RB7/PGD' port='1' bit='7' />
    </pins>
    <adc type='26' 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='0' pin='5' aport='0' apin='0' areg='APFCON' amask='0x02' />
    </spi>
    <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' />
            <option name='64' value='64' />
        </prescaler>
        <out port='2' pin='2' pwmtype='1' />
        <out port='2' pin='1' aport='1' apin='3' pwmtype='1' />
    </pwm>
    <intosc>
        <option name='31000' value='OSCCON = 0x00;' />   
    	<option name='31250' value='OSCCON = 0x10;' />   
    	<option name='62500' value='OSCCON = 0x20;' />
    	<option name='125000' value='OSCCON = 0x28;' /> 
    	<option name='250000' value='OSCCON = 0x30;' /> 
    	<option name='500000' value='OSCCON = 0x38;' default='1' /> 
    	<option name='1000000' value='OSCCON = 0x58;' /> 
    	<option name='2000000' value='OSCCON = 0x60;' /> 
    	<option name='4000000' value='OSCCON = 0x68;' /> 
    	<option name='8000000' value='OSCCON = 0x70;' /> 
    	<option name='16000000' value='OSCCON = 0x78;' /> 
    </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(OPTION_REG,T0CS);\n' />
                    <entry name='Internal clock (CLKO)' clkdiv='4' value='cr_bit(OPTION_REG,T0CS);\n' />
                </option>
                <option name='Source Edge Select' >
                    <entry name='high-to-low transition on TMR0 Clock' value='st_bit(OPTION_REG,T0SE);\n' />
                    <entry name='low-to-high transition on TMR0 Clock' value='cr_bit(OPTION_REG,T0SE);\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x08;\n' />
                    <entry name='1:2' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x00;\n' />
                    <entry name='1:4' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x01;\n' />
                    <entry name='1:8' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x02;\n' />
                    <entry name='1:16' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x03;\n' />
                    <entry name='1:32' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x04;\n' />
                    <entry name='1:64' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x05;\n' />
                    <entry name='1:128' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x06;\n' />
                    <entry name='1:256' value='OPTION_REG = (OPTION_REG &amp; 0xF0) | 0x07;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='INT0' type='pin' name='INT0 Pin' handler='#ifndef MX_INTHANDLER_INTCON_INTF\n#define MX_INTHANDLER_INTCON_INTF\nif (ts_bit(INTCON, INTF) &amp;&amp; ts_bit(INTCON, INTE))\n{\n\tFCM_%n();\n\tcr_bit(INTCON, INTF);\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, INTE);\n' disable='cr_bit(INTCON, INTE);\n' >
            <ioc config='3' >
                <rising port='0' mask='0x04' />
                <falling port='0' mask='0x04' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='st_bit(OPTION_REG,INTEDG);\n' />
                    <entry name='Falling edge of INT' value='cr_bit(OPTION_REG,INTEDG);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='IOC0' type='multipin' name='IOC PORTA' handler='#ifndef MX_INTHANDLER_INTCON_IOCIF\n#define MX_INTHANDLER_INTCON_IOCIF\nchar mxtmp;\nif (ts_bit(INTCON, IOCIF) &amp;&amp; ts_bit(INTCON, IOCIE))\n{\n\tFCM_%n();\n\tmxtmp=PORTA;\n\tcr_bit(INTCON, IOCIF);\n\tIOCAF=0;\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='IOCAP=%pA0h;\nIOCAN=%pA0l;\nst_bit(INTCON, IOCIE);\n' disable='cr_bit(INTCON, IOCIE);\n' >
            <ioc config='0x0F' >
                <rising port='0' mask='0x3F' />
                <falling port='0' mask='0x3F' />
            </ioc>
        </interrupt>
        <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\n' enable='st_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='st_bit(INTCON,PEIE);\ncr_bit(T2CON,T2CKPS0);\ncr_bit(T2CON,T2CKPS1);\nst_bit(T2CON,TMR2ON);\n' />
                    <entry name='1:4' value='st_bit(INTCON,PEIE);\nst_bit(T2CON,T2CKPS0);\ncr_bit(T2CON,T2CKPS1);\nst_bit(T2CON,TMR2ON);\n' />
                    <entry name='1:16' value='st_bit(INTCON,PEIE);\ncr_bit(T2CON,T2CKPS0);\nst_bit(T2CON,T2CKPS1);\nst_bit(T2CON,TMR2ON);\n' />
                    <entry name='1:64' value='st_bit(INTCON,PEIE);\nst_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='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(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='st_bit(INTCON,PEIE);\ncr_bit(T1CON,T1OSCEN);\nst_bit(T1CON,TMR1ON);\nst_bit(T1CON,TMR1CS1);\n' />
                    <entry name='Internal clock (Fosc/4)' clkdiv='4' value='st_bit(INTCON,PEIE);\ncr_bit(T1CON,T1OSCEN);\nst_bit(T1CON,TMR1ON);\ncr_bit(T1CON,TMR1CS1);\n' />
                    <entry name='32.768KHz XTAL T1CKI/T1CKO' clkdiv='0' value='st_bit(INTCON,PEIE);\nst_bit(T1CON,T1OSCEN);\nst_bit(T1CON,TMR1ON);\nst_bit(T1CON,TMR1CS1);\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T1CON = T1CON &amp; 0x0F;\n' />
                    <entry name='1:2' value='T1CON = (T1CON &amp; 0x0F) | 0x10;\n' />
                    <entry name='1:4' value='T1CON = (T1CON &amp; 0x0F) | 0x20;\n' />
                    <entry name='1:8' value='T1CON = (T1CON &amp; 0x0F) | 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="" />
    <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='ANSELA = 0x00;\nANSELB = 0x00;\nANSELC = 0x00;\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='OPTION_REG = 0xC0;\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='0' pin='1' />
        <data port='0' pin='0' />
    </icd>
</test>
</root>
