<!-- CRC: 90CF26913586BBA787FE92D55377193346EADD760FE0480E1133EE9487C6DB34DA6183FD7E79AA9B6577EF8789F001E80228F42835EF5B88138FDEE58A4EE9C3A4BAF1B34E38B68E0C3CAEE8E7DA6987D3CF2A3CF4A318C2F844C4CBC380BCF4F9B1FCAE7B9652039E823B2AC8ABEBB95EFAD024329EB98DE57849D9616D6BCAECADBD47DB232DA0E34452E1097B6C1E427FFE81F3C6AC319A61CCD40A1016E8604D23BE304EFBB8086944AE325796A68F67BDDE027EE3FF3AF931CA824A4B6421F2F13C9B8829E242BD2180FD7CFFB0161DC776D051D9AD -->
<!-- REVISION: 6.0 -->
<!-- GUID: 692B8C74-F6D6-4F8F-86D9-693B4DBD7079 -->
<!-- DATE: 07\04\2025 -->
<!-- DIR: FCD\PIC\18F15Q41.fcdx -->


<root>
<device name='18F15Q41' product='PIC' cal='PIC' family='18F' bits='8' >

    <clock max_speed='64000000' master_divider='4' default='64000000' />
    
    <memory >
        <flash bytes='32768' />
        <ram bytes='2048' />
    </memory>
    
    <configuration address='1' mult='2' >
        <format >
            <word address='FEXTOSC' value='4' />
            <word address='RSTOSC' value='0' />
            <word address='CLKOUTEN' value='1' />
            <word address='PR1WAY' value='0' />
            <word address='CSWEN' value='1' />
            <word address='FCMEN' value='1' />
            <word address='FCMENP' value='0' />
            <word address='FCMENS' value='0' />
            <word address='MCLRE' value='1' />
            <word address='PWRTS' value='2' />
            <word address='MVECEN' value='0' />
            <word address='IVT1WAY' value='0' />
            <word address='LPBOREN' value='1' />
            <word address='BOREN' value='3' />
            <word address='BORV' value='3' />
            <word address='ZCD' value='1' />
            <word address='PPS1WAY' value='0' />
            <word address='STVREN' value='1' />
            <word address='LVP' value='0' />
            <word address='XINST' value='1' />
            <word address='WDTCPS' value='0' />
            <word address='WDTE' value='0' />
            <word address='WDTCWS' value='0' />
            <word address='WDTCCS' value='0' />
            <word address='BBSIZE' value='7' />
            <word address='BBEN' value='1' />
            <word address='SAFEN' value='1' />
            <word address='DEBUG' value='1' />
            <word address='WRTB' value='1' />
            <word address='WRTC' value='1' />
            <word address='WRTD' value='1' />
            <word address='WRTSAF' value='1' />
            <word address='WRTAPP' value='1' />
            <word address='CP' value='1' />
        </format>
        <setting />
        <settings >
            <setting name='FEXTOSC' offset='0' mask='0xFFFF' bits='16' hint='External Oscillator Selection' >
                <option name='LP (crystal oscillator) optimized for 32.768 kHz' value='0x0' />
                <option name='XT (crystal oscillator) above 100 kHz, below 8 MHz' value='0x1' />
                <option name='HS (crystal oscillator) above 8 MHz' value='0x2' />
                <option name='Oscillator not enabled' value='0x4' />
                <option name='EC (external clock) below 100 kHz' value='0x5' />
                <option name='EC (external clock) for 500 kHz to 8 MHz' value='0x6' />
                <option name='EC (external clock) above 8 MHz' value='0x7' />
            </setting>
            <setting name='RSTOSC' offset='16' mask='0xFFFF' bits='16' hint='Reset Oscillator Selection' >
                <option name='HFINTOSC with HFFRQ = 64 MHz and CDIV = 1:1' value='0x0' />
                <option name='EXTOSC with 4x PLL, with EXTOSC operating per FEXTOSC bits' value='0x2' />
                <option name='Secondary Oscillator' value='0x4' />
                <option name='Low-Frequency Oscillator' value='0x5' />
                <option name='HFINTOSC with HFFRQ = 4 MHz and CDIV = 4:1' value='0x6' />
                <option name='EXTOSC operating per FEXTOSC bits (device manufacturing default)' value='0x7' />
            </setting>
            <setting name='CLKOUTEN' offset='32' mask='0xFFFF' bits='16' hint='Clock out Enable bit' >
                <option name='CLKOUT function is disabled' value='0x1' />
                <option name='CLKOUT function is enabled' value='0x0' />
            </setting>
            <setting name='PR1WAY' offset='48' mask='0xFFFF' bits='16' hint='PRLOCKED One-Way Set Enable bit' >
                <option name='PRLOCKED bit can be cleared and set only once' value='0x1' />
                <option name='PRLOCKED bit can be set and cleared repeatedly' value='0x0' />
            </setting>
            <setting name='CSWEN' offset='64' mask='0xFFFF' bits='16' hint='Clock Switch Enable bit' >
                <option name='The NOSC and NDIV bits cannot be changed by user software' value='0x0' />
                <option name='Writing to NOSC and NDIV is allowed' value='0x1' />
            </setting>
            <setting name='FCMEN' offset='80' 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='FCMENP' offset='96' mask='0xFFFF' bits='16' hint='Fail-Safe Clock Monitor - Primary XTAL Enable bit' >
                <option name='Fail-Safe Clock Monitor disabled' value='0x0' />
                <option name='Fail-Safe Clock Monitor enabled; timer will flag FSCMP bit and OSFIF interrupt on EXTOSC failure.' value='0x1' />
            </setting>
            <setting name='FCMENS' offset='112' mask='0xFFFF' bits='16' hint='Fail-Safe Clock Monitor - Secondary XTAL Enable bit' >
                <option name='Fail-Safe Clock Monitor Disabled' value='0x0' />
                <option name='Fail-Safe Clock Monitor enabled; timer will flag FSCMP bit and OSFIF interrupt on SOSC failure.' value='0x1' />
            </setting>
            <setting name='MCLRE' offset='128' mask='0xFFFF' bits='16' hint='MCLR Enable bit' >
                <option name='If LVP = 0, MCLR pin is MCLR; If LVP = 1, RE3 pin function is MCLR' value='0x1' />
                <option name='If LVP = 0, MCLR pin function is port defined function; If LVP =1, RE3 pin fuction is MCLR' value='0x0' />
            </setting>
            <setting name='PWRTS' offset='144' mask='0xFFFF' bits='16' hint='Power-up timer selection bits' >
                <option name='PWRT is disabled' value='0x3' />
                <option name='PWRT set at 64ms' value='0x2' />
                <option name='PWRT set at 16ms' value='0x1' />
                <option name='PWRT set at 1ms' value='0x0' />
            </setting>
            <setting name='MVECEN' offset='160' mask='0xFFFF' bits='16' hint='Multi-vector enable bit' >
                <option name='Multi-vector enabled, Vector table used for interrupts' value='0x1' />
                <option name='Interrupt contoller does not use vector table to prioritze interrupts' value='0x0' />
            </setting>
            <setting name='IVT1WAY' offset='176' mask='0xFFFF' bits='16' hint='IVTLOCK bit One-way set enable bit' >
                <option name='IVTLOCKED bit can be cleared and set only once' value='0x1' />
                <option name='IVTLOCKED bit can be cleared and set repeatedly' value='0x0' />
            </setting>
            <setting name='LPBOREN' offset='192' mask='0xFFFF' bits='16' hint='Low Power BOR Enable bit' >
                <option name='Low-Power BOR disabled' value='0x1' />
                <option name='Low-Power BOR enabled' value='0x0' />
            </setting>
            <setting name='BOREN' offset='208' mask='0xFFFF' bits='16' hint='Brown-out Reset Enable bits' >
                <option name='Brown-out Reset enabled , SBOREN bit is ignored' value='0x3' />
                <option name='Brown-out Reset enabled while running, disabled in Sleep; SBOREN is ignored' value='0x2' />
                <option name='Brown-out Reset enabled according to SBOREN' value='0x1' />
                <option name='Brown-out Reset disabled' value='0x0' />
            </setting>
            <setting name='BORV' offset='224' mask='0xFFFF' bits='16' hint='Brown-out Reset Voltage Selection bits' >
                <option name='Brown-out Reset Voltage (VBOR) set to 1.9V' value='0x3' />
                <option name='Brown-out Reset Voltage (VBOR) set to 2.45V' value='0x2' />
                <option name='Brown-out Reset Voltage (VBOR) set to 2.7V' value='0x1' />
                <option name='Brown-out Reset Voltage (VBOR) set to 2.8V' value='0x0' />
            </setting>
            <setting name='ZCD' offset='240' mask='0xFFFF' bits='16' hint='ZCD Disable bit' >
                <option name='ZCD module is disabled. ZCD can be enabled by setting the ZCDSEN bit of ZCDCON' value='0x1' />
                <option name='ZCD module is always enabled; ZCDMD and ZCDSEN bits are ignored' value='0x0' />
            </setting>
            <setting name='PPS1WAY' offset='256' mask='0xFFFF' bits='16' hint='PPSLOCK bit One-Way Set Enable bit' >
                <option name='PPSLOCKED bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle' value='0x1' />
                <option name='PPSLOCKED bit can be set and cleared repeatedly (subject to the unlock sequence)' value='0x0' />
            </setting>
            <setting name='STVREN' offset='272' mask='0xFFFF' bits='16' hint='Stack Full/Underflow Reset Enable bit' >
                <option name='Stack full/underflow will cause Reset' value='0x1' />
                <option name='Stack full/underflow will not cause Reset' value='0x0' />
            </setting>
            <setting name='LVP' offset='288' mask='0xFFFF' bits='16' hint='Low Voltage Programming Enable bit' >
                <option name='Low voltage programming enabled. MCLR/VPP pin function is MCLR. MCLRE configuration bit is ignored' value='0x1' />
                <option name='HV on MCLR/VPP must be used for programming' value='0x0' />
            </setting>
            <setting name='XINST' offset='304' mask='0xFFFF' bits='16' hint='Extended Instruction Set Enable bit' >
                <option name='Extended Instruction Set and Indexed Addressing Mode disabled' value='0x1' />
                <option name='Extended Instruction Set and Indexed Addressing Mode enabled' value='0x0' />
            </setting>
            <setting name='WDTCPS' offset='320' mask='0xFFFF' bits='16' hint='WDT Period selection bits' >
                <option name='Divider ratio 1:32' value='0x0' />
                <option name='Divider ratio 1:64' value='0x1' />
                <option name='Divider ratio 1:128' value='0x2' />
                <option name='Divider ratio 1:256' value='0x3' />
                <option name='Divider ratio 1:512' value='0x4' />
                <option name='Divider ratio 1:1024' value='0x5' />
                <option name='Divider ratio 1:2048' value='0x6' />
                <option name='Divider ratio 1:4096' value='0x7' />
                <option name='Divider ratio 1:8192' value='0x8' />
                <option name='Divider ratio 1:16384' value='0x9' />
                <option name='Divider ratio 1:32768' value='0xa' />
                <option name='Divider ratio 1:65536' value='0xb' />
                <option name='Divider ratio 1:131072' value='0xc' />
                <option name='Divider ratio 1:262144' value='0xd' />
                <option name='Divider ratio 1:524299' value='0xe' />
                <option name='Divider ratio 1:1048576' value='0xf' />
                <option name='Divider ratio 1:2097152' value='0x10' />
                <option name='Divider ratio 1:4194304' value='0x11' />
                <option name='Divider ratio 1:8388608' value='0x12' />
                <option name='Divider ratio 1:32' value='0x13' />
                <option name='Divider ratio 1:32' value='0x14' />
                <option name='Divider ratio 1:32' value='0x15' />
                <option name='Divider ratio 1:32' value='0x16' />
                <option name='Divider ratio 1:32' value='0x17' />
                <option name='Divider ratio 1:32' value='0x18' />
                <option name='Divider ratio 1:32' value='0x19' />
                <option name='Divider ratio 1:32' value='0x1a' />
                <option name='Divider ratio 1:32' value='0x1b' />
                <option name='Divider ratio 1:32' value='0x1c' />
                <option name='Divider ratio 1:32' value='0x1d' />
                <option name='Divider ratio 1:32' value='0x1e' />
                <option name='Divider ratio 1:65536; software control of WDTPS' value='0x1f' />
            </setting>
            <setting name='WDTE' offset='336' mask='0xFFFF' bits='16' hint='WDT operating mode' >
                <option name='WDT Disabled; SWDTEN is ignored' value='0x0' />
                <option name='WDT enabled/disabled by SWDTEN bit' value='0x1' />
                <option name='WDT enabled while sleep=0, suspended when sleep=1; SWDTEN ignored' value='0x2' />
                <option name='WDT enabled regardless of sleep; SWDTEN is ignored' value='0x3' />
            </setting>
            <setting name='WDTCWS' offset='352' mask='0xFFFF' bits='16' hint='WDT Window Select bits' >
                <option name='window delay = 87.5; no software control; keyed access required' value='0x0' />
                <option name='window delay = 75 percent of time; no software control; keyed access required' value='0x1' />
                <option name='window delay = 62.5 percent of time; no software control; keyed access required' value='0x2' />
                <option name='window delay = 50 percent of time; no software control; keyed access required' value='0x3' />
                <option name='window delay = 37.5 percent of time; no software control; keyed access required' value='0x4' />
                <option name='window delay = 25 percent of time; no software control; keyed access required' value='0x5' />
                <option name='window always open (100%); no software control; keyed access required' value='0x6' />
                <option name='window always open (100%); software control; keyed access not required' value='0x7' />
            </setting>
            <setting name='WDTCCS' offset='368' mask='0xFFFF' bits='16' hint='WDT input clock selector' >
                <option name='WDT reference clock is the 31.0 kHz LFINTOSC' value='0x0' />
                <option name='WDT reference clock is the 31.25kHz MFINTOSC output' value='0x1' />
                <option name='WDT reference clock is SOSC' value='0x2' />
                <option name='Software Control' value='0x7' />
            </setting>
            <setting name='BBSIZE' offset='384' mask='0xFFFF' bits='16' hint='Boot Block Size selection bits' >
                <option name='Boot Block size is 512 words' value='0x7' />
                <option name='Boot Block size is 1024 words' value='0x6' />
                <option name='Boot Block size is 2048 words' value='0x5' />
                <option name='Boot Block size is 4096 words' value='0x4' />
                <option name='Boot Block size is 8192 words' value='0x3' />
            </setting>
            <setting name='BBEN' offset='400' mask='0xFFFF' bits='16' hint='Boot Block enable bit' >
                <option name='Boot block disabled' value='0x1' />
                <option name='Boot block enabled' value='0x0' />
            </setting>
            <setting name='SAFEN' offset='416' mask='0xFFFF' bits='16' hint='Storage Area Flash enable bit' >
                <option name='SAF disabled' value='0x1' />
                <option name='SAF enabled' value='0x0' />
            </setting>
            <setting name='DEBUG' offset='432' mask='0xFFFF' bits='16' hint='Background Debugger' >
                <option name='Background Debugger disabled' value='0x1' />
                <option name='Background Debugger enabled' value='0x0' />
            </setting>
            <setting name='WRTB' offset='448' mask='0xFFFF' bits='16' hint='Boot Block Write Protection bit' >
                <option name='Boot Block not Write protected' value='0x1' />
                <option name='Boot Block Write protected' value='0x0' />
            </setting>
            <setting name='WRTC' offset='464' mask='0xFFFF' bits='16' hint='Configuration Register Write Protection bit' >
                <option name='Configuration registers not Write protected' value='0x1' />
                <option name='Configuration registers Write protected' value='0x0' />
            </setting>
            <setting name='WRTD' offset='480' mask='0xFFFF' bits='16' hint='Data EEPROM Write Protection bit' >
                <option name='Data EEPROM not Write protected' value='0x1' />
                <option name='Data EEPROM Write protected' value='0x0' />
            </setting>
            <setting name='WRTSAF' offset='496' mask='0xFFFF' bits='16' hint='SAF Write protection bit' >
                <option name='SAF not Write Protected' value='0x1' />
                <option name='SAF Write Protected' value='0x0' />
            </setting>
            <setting name='WRTAPP' offset='512' mask='0xFFFF' bits='16' hint='Application Block write protection bit' >
                <option name='Application Block not write protected' value='0x1' />
                <option name='Application Block write protected' value='0x0' />
            </setting>
            <setting name='CP' offset='528' mask='0xFFFF' bits='16' hint='PFM and Data EEPROM Code Protection bit' >
                <option name='PFM and Data EEPROM code protection disabled' value='0x1' />
                <option name='PFM and Data EEPROM code protection enabled' value='0x0' />
            </setting>
        </settings >
    </configuration>

    <pins sides='2' smd='1' >
	<pin name='VDD' />
	<pin name='RA5/AN5' port='0' bit='5' adc='5' rpbank='a' rpreg='RA5PPS' rpnum='5' />
	<pin name='RA4/AN4' port='0' bit='4' adc='4' rpbank='a' rpreg='RA4PPS' rpnum='4' />
	<pin name='RA3/AN3/MCLR/VPP' port='0' bit='3' adc='3' rpbank='a' rpnum='3' />
	<pin name='RC5/AN21' port='2' bit='5' adc='21' rpbank='c' rpreg='RC5PPS' rpnum='2' />	
	<pin name='RC4/AN20' port='2' bit='4' adc='20' rpbank='c' rpreg='RC4PPS' rpnum='20' /> 
	<pin name='RC3/AN19' port='2' bit='3' adc='19' rpbank='c' rpreg='RC3PPS' rpnum='19' />       	
	<pin name='RC6/AN22' port='2' bit='6' adc='22' rpbank='c' rpreg='RC6PPS' rpnum='22' />
	<pin name='RC7/AN23' port='2' bit='7' adc='23' rpbank='c' rpreg='RC7PPS' rpnum='23' />
	<pin name='RB7/AN15' port='1' bit='7' adc='15' rpbank='b' rpreg='RB7PPS' rpnum='15' />
	<pin name='RB6/AN14' port='1' bit='6' adc='14' rpbank='b' rpreg='RB6PPS' rpnum='14' />
	<pin name='RB5/AN13' port='1' bit='5' adc='13' rpbank='b' rpreg='RB5PPS' rpnum='13' />
	<pin name='RB4/AN12' port='1' bit='4' adc='12' rpbank='b' rpreg='RB4PPS' rpnum='12' />
	<pin name='RC2/AN18' port='2' bit='2' adc='18' rpbank='c' rpreg='RC2PPS' rpnum='18' />   
	<pin name='RC1/AN17' port='2' bit='1' adc='17' rpbank='c' rpreg='RC1PPS' rpnum='17' />
	<pin name='RC0/AN16' port='2' bit='0' adc='16' rpbank='c' rpreg='RC0PPS' rpnum='16' />
	<pin name='RA2/AN2/VREF-' port='0' bit='2' adc='2' rpbank='a' rpreg='RA2PPS' rpnum='2' />
	<pin name='RA1/AN1/PGC' port='0' bit='1' adc='1' rpbank='a' rpreg='RA1PPS' rpnum='1' />
	<pin name='RA0/AN0/PGD' port='0' bit='0' adc='0' rpbank='a' rpreg='RA0PPS' rpnum='0' />       
	<pin name='VSS' />
    </pins>
    
    <adc type='40' bits='12' >
        <speed >
            <option name='Fosc / 2' value='0' />
            <option name='Fosc / 4' value='1' />
            <option name='Fosc / 8' value='3' />
            <option name='Fosc / 12' value='5' />
            <option name='Fosc / 16' value='7' />
            <option name='Fosc / 20' value='9' />
            <option name='Fosc / 24' value='11' />
            <option name='Fosc / 28' value='13' />
            <option name='Fosc / 32' value='15' />
            <option name='Fosc / 36' value='17' />
            <option name='Fosc / 40' value='19' />
            <option name='Fosc / 48' value='23' />
            <option name='Fosc / 64' value='31' />
            <option name='FRC' value='128' />
        </speed>
        <vref>
            <option name='VDD' value='0' />
            <option name='Vref+' value='2' />
            <option name='FVR' value='3' />
        </vref>
    </adc>
    <dac type='6' bits='8' >
        <vref>
            <option name='VDD' value='0' />
            <option name='Vref+' value='1' />
            <option name='FVR' value='2' />
        </vref>
        <out port='0' pin='0' aport='0' apin='2' />
        <out />
    </dac>
    <fvr>
        <option name='Disabled' value='FVRCON = 0x00;' />
    	<option name='1.024V' value='FVRCON = 0x81;' />
    	<option name='2.048V' value='FVRCON = 0x82;' />
    	<option name='4.096V' value='FVRCON = 0x83;' />
    </fvr>
    <eeprom type='6' bytes='512' />
    <spi remappable='1' >
        <miso rpreg='SPI1SDIPPS' rpbank='a' arpreg='SPI1SDIPPS' arpbank='b'  aarpreg='SPI1SDIPPS' aarpbank='c' />
        <mosi rpnum='0x1C' rpbank='a' arpnum='0x1C' arpbank='b' aarpnum='0x1C' aarpbank='c' />
        <clk rpreg='SPI1SCKPPS' rpnum='0x1B' rpbank='a' arpreg='SPI1SCKPPS' arpnum='0x1B' arpbank='b' aarpreg='SPI1SCKPPS' aarpnum='0x1B' aarpbank='c' />
        <ss rpreg='SPI1SSPPS' rpbank='a' arpreg='SPI1SSPPS' arpbank='b' aarpreg='SPI1SSPPS' aarpbank='c' />
    </spi>
    <spi remappable='1' >
        <miso rpreg='SPI2SDIPPS' rpbank='a' arpreg='SPI2SDIPPS' arpbank='b' aarpreg='SPI2SDIPPS' aarpbank='c' />
        <mosi rpnum='0x1F' rpbank='a' arpnum='0x1F' arpbank='b' aarpnum='0x1F' aarpbank='c' />
        <clk rpreg='SPI2SCKPPS' rpnum='0x1E' rpbank='a' arpreg='SPI2SCKPPS' arpnum='0x1E' arpbank='b' aarpreg='SPI2SCKPPS' aarpnum='0x1E' aarpbank='c' />
        <ss rpreg='SPI2SSPPS' rpbank='a' arpreg='SPI2SSPPS' arpbank='b' aarpreg='SPI2SSPPS' aarpbank='c' />
    </spi>
    <uart remappable='1' >
        <tx rpnum='0x10' rpbank='a' arpnum='0x10' arpbank='b' aarpnum='0x10' aarpbank='c' />
        <rx rpreg='U1RXPPS' rpbank='a' arpreg='U1RXPPS' arpbank='b' aarpreg='U1RXPPS' aarpbank='c' />
    </uart>
    <uart remappable='1' >
        <tx rpnum='0x13' rpbank='a' arpnum='0x13' arpbank='b' aarpnum='0x13' aarpbank='c' />
        <rx rpreg='U2RXPPS' rpbank='a' arpreg='U2RXPPS' arpbank='b' aarpreg='U2RXPPS' aarpbank='c' />
    </uart>
    <uart remappable='1' >
        <tx rpnum='0x16' rpbank='a' arpnum='0x16' arpbank='b' arpnum='0x16' arpbank='c' />
        <rx rpreg='U3RXPPS' rpbank='a' arpreg='U3RXPPS' arpbank='b' arpreg='U3RXPPS' arpbank='c' />
    </uart>
    <i2c master='1' remappable='1' >
        <sda rpreg='I2C1SDAPPS' rpnum='0x22' rpbank='a' arpreg='I2C1SDAPPS' arpnum='0x22' arpbank='b' aarpreg='I2C1SDAPPS' aarpnum='0x22' aarpbank='c' />
        <scl rpreg='I2C1SCLPPS' rpnum='0x21' rpbank='a' arpreg='I2C1SCLPPS' arpnum='0x21' arpbank='b' aarpreg='I2C1SCLPPS' aarpnum='0x21' aarpbank='c' />
    </i2c>
    <pwm remappable='1' >
    	<timer>
    	    <option name='Timer2' value='2' />
    	    <option name='Timer4' value='4' />	
		</timer>
        <prescaler >
            <option name='1' value='1' />
            <option name='2' value='2' />
            <option name='4' value='4' />
            <option name='8' value='8' />
            <option name='16' value='16' />
            <option name='32' value='32' />
            <option name='64' value='64' />
            <option name='128' value='128' />
        </prescaler>
        <out rpnum='0x09' rpbank='a' arpnum='0x09' arpbank='b' aarpnum='0x09' aarpbank='c' pwmtype='0'  />
    </pwm>
    <intosc>
        <option name='1000000' value='OSCFRQ = 0x00;' /> 
        <option name='2000000' value='OSCFRQ = 0x01;' /> 
        <option name='4000000' value='OSCFRQ = 0x02;' /> 
        <option name='8000000' value='OSCFRQ = 0x03;' /> 
        <option name='12000000' value='OSCFRQ = 0x04;' /> 
	<option name='16000000' value='OSCFRQ = 0x05;' /> 
    	<option name='32000000' value='OSCFRQ = 0x06;' /> 
    	<option name='48000000' value='OSCFRQ = 0x07;' /> 
    	<option name='64000000' value='OSCFRQ = 0x08;' default='1' /> 
    </intosc>
    <interrupts >
        <interrupt ident='TMR0' regl='TMR0' regh='' type='timer8' name='Timer 0' handler='#ifndef MX_INTHANDLER_PIR3_TMR0IF\n#define MX_INTHANDLER_PIR3_TMR0IF\nif (ts_bit(PIR3, TMR0IF) &amp;&amp; ts_bit(PIE3, TMR0IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR3, 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(PIE3, TMR0IE);\n' disable='cr_bit(PIE3, TMR0IE);\n' >
            <timer overflow='256' extrange='0' />
            <options >
                <option name='Clock Source Select' >
                    <entry name='Transition on T0CKI pin  (Non-inverted)' clkdiv='0' value='T0CON1 = (T0CON1 &amp; 0xE0);\n' />
					<entry name='Transition on T0CKI pin  (Inverted)' clkdiv='0' value='T0CON1 = (T0CON1 &amp; 0xE0) | 0x20;\n' />
                    <entry name='Internal clock /4 (CLKO)' clkdiv='4' value='T0CON1 = (T0CON1 &amp; 0xE0) | 0x40;\n' />
                    <entry name='HFINTOSC (CLKO)' clkdiv='0' value='T0CON1 = (T0CON1 &amp; 0xE0) | 0x60;\n' />
                    <entry name='LFINTOSC (CLKO)' clkdiv='0' value='T0CON1 = (T0CON1 &amp; 0xE0) | 0x80;\n' />
					<entry name='MFINTOSC (500KHz CLKO)' clkdiv='0' value='T0CON1 = (T0CON1 &amp; 0xE0) | 0xA0;\n' />
					<entry name='SOSC' clkdiv='0' value='T0CON1 = (T0CON1 &amp; 0xE0) | 0xC0;\n' />
					<entry name='CLC1_OUT' clkdiv='0' value='T0CON1 = (T0CON1 &amp; 0xE0) | 0xE0;\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T0CON1 = T0CON1 &amp; 0xF0;\n' />
                    <entry name='1:2' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x01;\n' />
                    <entry name='1:4' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x02;\n' />
                    <entry name='1:8' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x03;\n' />
                    <entry name='1:16' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x04;\n' />
                    <entry name='1:32' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x05;\n' />
                    <entry name='1:64' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x06;\n' />
                    <entry name='1:128' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x07;\n' />
                    <entry name='1:256' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x08;\n' />
                    <entry name='1:512' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x09;\n' />
                    <entry name='1:1024' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x0A;\n' />
                    <entry name='1:2048' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x0B;\n' />
                    <entry name='1:4096' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x0C;\n' />
                    <entry name='1:8192' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x0D;\n' />
                    <entry name='1:16384' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x0E;\n' />
                    <entry name='1:32768' value='T0CON1 = (T0CON1 &amp; 0xF0) | 0x0F;\n' />
                </prescale>
                <postscale name='Postscaler Rate' >
                    <entry name='1:1' value='T0CON0 = 0x80;\n' />
                    <entry name='1:2' value='T0CON0 = 0x81;\n' />
                    <entry name='1:3' value='T0CON0 = 0x82;\n' />
                    <entry name='1:4' value='T0CON0 = 0x83;\n' />
                    <entry name='1:5' value='T0CON0 = 0x84;\n' />
                    <entry name='1:6' value='T0CON0 = 0x85;\n' />
                    <entry name='1:7' value='T0CON0 = 0x86;\n' />
                    <entry name='1:8' value='T0CON0 = 0x87;\n' />
                    <entry name='1:9' value='T0CON0 = 0x88;\n' />
                    <entry name='1:10' value='T0CON0 = 0x89;\n' />
                    <entry name='1:11' value='T0CON0 = 0x8A;\n' />
                    <entry name='1:12' value='T0CON0 = 0x8B;\n' />
                    <entry name='1:13' value='T0CON0 = 0x8C;\n' />
                    <entry name='1:14' value='T0CON0 = 0x8D;\n' />
                    <entry name='1:15' value='T0CON0 = 0x8E;\n' />
                    <entry name='1:16' value='T0CON0 = 0x8F;\n' />
                </postscale>
            </options>
        </interrupt>
        <interrupt ident='TMR1' regl='TMR1L' regh='TMR1H' type='timer16' name='Timer 1' handler='#ifndef MX_INTHANDLER_PIR3_TMR1IF\n#define MX_INTHANDLER_PIR3_TMR1IF\nif (ts_bit(PIR3, TMR1IF) &amp;&amp; ts_bit(PIE3, TMR1IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR3, 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(PIE3, TMR1IE);\nst_bit(PIE3, TMR1IE);\n' disable='cr_bit(PIE3, TMR1IE);\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <option name='Clock Source Select' >
                    <entry name='Transition on T1CKI pin' clkdiv='0' value='TMR1CLK = 0;\n' />
                    <entry name='Internal clock (Fosc/4)' clkdiv='4' value='TMR1CLK = 1;\n' />
                    <entry name='Internal clock (Fosc/1)' clkdiv='1' value='TMR1CLK = 2;\n' />
                    <entry name='HFINTOSC' clkdiv='0' value='TMR1CLK = 3;\n' />
                    <entry name='LFINTOSC' clkdiv='0' value='TMR1CLK = 4;\n' />
                    <entry name='MFINTOSC' clkdiv='0' value='TMR1CLK = 5;\n' />
                    <entry name='SOSC' clkdiv='0' value='TMR1CLK = 6;\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T1CON = (T1CON &amp; 0xCF) | 0x01;\n' />
                    <entry name='1:2' value='T1CON = (T1CON &amp; 0xCF) | 0x11;\n' />
                    <entry name='1:4' value='T1CON = (T1CON &amp; 0xCF) | 0x21;\n' />
                    <entry name='1:8' value='T1CON = (T1CON &amp; 0xCF) | 0x31;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='TMR2' regl='T2TMR' regh='' type='timer8' name='Timer 2' handler='#ifndef MX_INTHANDLER_PIR3_TMR2IF\n#define MX_INTHANDLER_PIR3_TMR2IF\nif (ts_bit(PIR3, TMR2IF) &amp;&amp; ts_bit(PIE3, TMR2IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR3, 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(PIE3, TMR2IE);\nst_bit(PIE3, TMR2IE);\n' disable='cr_bit(PIE3, TMR2IE);\n' >
            <timer overflow='256' extrange='0' />
            <options >
                <option name='Clock Source Select' >
                    <entry name='Transition on T2CKI pin' clkdiv='0' value='T2CLKCON = 0;\n' />
                    <entry name='Internal clock (Fosc/4)' clkdiv='4' value='T2CLKCON = 1;\n' />
                    <entry name='Internal clock (Fosc/1)' clkdiv='1' value='T2CLKCON = 2;\n' />
                    <entry name='HFINTOSC' clkdiv='0' value='T2CLKCON = 3;\n' />
                    <entry name='LFINTOSC' clkdiv='0' value='T2CLKCON = 4;\n' />
                    <entry name='MFINTOSC (32KHz)' clkdiv='0' value='T2CLKCON = 5;\n' />
                     <entry name='MFINTOSC (500KHz)' clkdiv='0' value='T2CLKCON = 6;\n' />
					<entry name='SOSC' clkdiv='0' value='T2CLKCON = 7;\n' />
					<entry name='EXTOSC' clkdiv='0' value='T2CLKCON = 8;\n' />
					<entry name='CLKREF_OUT' clkdiv='0' value='T2CLKCON = 9;\n' />
					<entry name='NCO1_OUT' clkdiv='0' value='T2CLKCON = 10;\n' />
					<entry name='ZCD_OUT' clkdiv='0' value='T2CLKCON = 11;\n' />
					<entry name='CLC1_OUT' clkdiv='0' value='T2CLKCON = 12;\n' />
					<entry name='CLC2_OUT' clkdiv='0' value='T2CLKCON = 13;\n' />
					<entry name='CLC3_OUT' clkdiv='0' value='T2CLKCON = 14;\n' />
					<entry name='CLC4_OUT' clkdiv='0' value='T2CLKCON = 15;\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T2CON = (T2CON &amp; 0x0F) | 0x80;\n' />
                    <entry name='1:2' value='T2CON = (T2CON &amp; 0x0F) | 0x90;\n' />
                    <entry name='1:4' value='T2CON = (T2CON &amp; 0x0F) | 0xA0;\n' />
                    <entry name='1:8' value='T2CON = (T2CON &amp; 0x0F) | 0xB0;\n' />
                    <entry name='1:16' value='T2CON = (T2CON &amp; 0x0F) | 0xC0;\n' />
                    <entry name='1:32' value='T2CON = (T2CON &amp; 0x0F) | 0xD0;\n' />
                    <entry name='1:64' value='T2CON = (T2CON &amp; 0x0F) | 0xE0;\n' />
                    <entry name='1:128' value='T2CON = (T2CON &amp; 0x0F) | 0xF0;\n' />
                </prescale>
                <postscale name='Postscaler Rate' >
                    <entry name='1:1' value='T2CON = T2CON &amp; 0xF0;\n' />
                    <entry name='1:2' value='T2CON = (T2CON &amp; 0xF0) | 0x01;\n' />
                    <entry name='1:3' value='T2CON = (T2CON &amp; 0xF0) | 0x02;\n' />
                    <entry name='1:4' value='T2CON = (T2CON &amp; 0xF0) | 0x03;\n' />
                    <entry name='1:5' value='T2CON = (T2CON &amp; 0xF0) | 0x04;\n' />
                    <entry name='1:6' value='T2CON = (T2CON &amp; 0xF0) | 0x05;\n' />
                    <entry name='1:7' value='T2CON = (T2CON &amp; 0xF0) | 0x06;\n' />
                    <entry name='1:8' value='T2CON = (T2CON &amp; 0xF0) | 0x07;\n' />
                    <entry name='1:9' value='T2CON = (T2CON &amp; 0xF0) | 0x08;\n' />
                    <entry name='1:10' value='T2CON = (T2CON &amp; 0xF0) | 0x09;\n' />
                    <entry name='1:11' value='T2CON = (T2CON &amp; 0xF0) | 0x0A;\n' />
                    <entry name='1:12' value='T2CON = (T2CON &amp; 0xF0) | 0x0B;\n' />
                    <entry name='1:13' value='T2CON = (T2CON &amp; 0xF0) | 0x0C;\n' />
                    <entry name='1:14' value='T2CON = (T2CON &amp; 0xF0) | 0x0D;\n' />
                    <entry name='1:15' value='T2CON = (T2CON &amp; 0xF0) | 0x0E;\n' />
                    <entry name='1:16' value='T2CON = (T2CON &amp; 0xF0) | 0x0F;\n' />
                </postscale>
                <rollover name='Rollover Value' >
                    <entry name='256' min='1' max='256' value='T2PR=%d-1;\n' />
                </rollover>
            </options>
   </interrupt>
        <interrupt ident='TMR3' regl='TMR3L' regh='TMR3H' type='timer16' name='Timer 3' handler='#ifndef MX_INTHANDLER_PIR4_TMR3IF\n#define MX_INTHANDLER_PIR4_TMR3IF\nif (ts_bit(PIR4, TMR3IF) &amp;&amp; ts_bit(PIE4, TMR3IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR4, 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(PIE4, TMR3IE);\nst_bit(PIE4, TMR3IE);\n' disable='cr_bit(PIE4, TMR3IE);\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <option name='Clock Source Select' >
                    <entry name='Transition on T3CKI pin' clkdiv='0' value='TMR3CLK = 0;\n' />
                    <entry name='Internal clock (Fosc/4)' clkdiv='4' value='TMR3CLK = 1;\n' />
                    <entry name='Internal clock (Fosc/1)' clkdiv='1' value='TMR3CLK = 2;\n' />
                    <entry name='HFINTOSC' clkdiv='0' value='TMR3CLK = 3;\n' />
                    <entry name='LFINTOSC' clkdiv='0' value='TMR3CLK = 4;\n' />
                    <entry name='MFINTOSC' clkdiv='0' value='TMR3CLK = 5;\n' />
                    <entry name='SOSC' clkdiv='0' value='TMR3CLK = 6;\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T3CON = (T3CON &amp; 0xCF) | 0x01;\n' />
                    <entry name='1:2' value='T3CON = (T3CON &amp; 0xCF) | 0x11;\n' />
                    <entry name='1:4' value='T3CON = (T3CON &amp; 0xCF) | 0x21;\n' />
                    <entry name='1:8' value='T3CON = (T3CON &amp; 0xCF) | 0x31;\n' />
                </prescale>
            </options>
	</interrupt>
        <interrupt ident='TMR4' regl='T4TMR' regh='' type='timer8' name='Timer 4' handler='#ifndef MX_INTHANDLER_PIR10_TMR4IF\n#define MX_INTHANDLER_PIR10_TMR4IF\nif (ts_bit(PIR10, TMR4IF) &amp;&amp; ts_bit(PIE10, TMR4IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR10, TMR4IF);\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(PIE10, TMR4IE);\nst_bit(PIE10, TMR4IE);\n' disable='cr_bit(PIE10, TMR4IE);\n' >
            <timer overflow='256' extrange='0' />
            <options >
                <option name='Clock Source Select' >
                     <entry name='Transition on T4CKI pin' clkdiv='0' value='T4CLKCON = 0;\n' />
                    <entry name='Internal clock (Fosc/4)' clkdiv='4' value='T4CLKCON = 1;\n' />
                    <entry name='Internal clock (Fosc/1)' clkdiv='1' value='T4CLKCON = 2;\n' />
                    <entry name='HFINTOSC' clkdiv='0' value='T4CLKCON = 3;\n' />
                    <entry name='LFINTOSC' clkdiv='0' value='T4CLKCON = 4;\n' />
                    <entry name='MFINTOSC' clkdiv='0' value='T4CLKCON = 5;\n' />
                    <entry name='SOSC' clkdiv='0' value='T4CLKCON = 6;\n' />
					<entry name='EXTOSC' clkdiv='0' value='T4CLKCON  = 8;\n' />
					<entry name='CLKREF_OUT' clkdiv='0' value='T4CLKCON = 9;\n' />
					<entry name='NCO1_OUT' clkdiv='0' value='T4CLKCON = 10;\n' />
					<entry name='ZCD_OUT' clkdiv='0' value='T4CLKCON = 11;\n' />
					<entry name='CLC1_OUT' clkdiv='0' value='T4CLKCON = 12;\n' />
					<entry name='CLC2_OUT' clkdiv='0' value='T4CLKCON = 13;\n' />
					<entry name='CLC3_OUT' clkdiv='0' value='T4CLKCON = 14;\n' />
					<entry name='CLC4_OUT' clkdiv='0' value='T4CLKCON = 15;\n' />
                </option>
                <prescale name='Prescaler Rate' >
                    <entry name='1:1' value='T4CON = (T4CON &amp; 0x0F) | 0x80;\n' />
                    <entry name='1:2' value='T4CON = (T4CON &amp; 0x0F) | 0x90;\n' />
                    <entry name='1:4' value='T4CON = (T4CON &amp; 0x0F) | 0xA0;\n' />
                    <entry name='1:8' value='T4CON = (T4CON &amp; 0x0F) | 0xB0;\n' />
                    <entry name='1:16' value='T4CON = (T4CON &amp; 0x0F) | 0xC0;\n' />
                    <entry name='1:32' value='T4CON = (T4CON &amp; 0x0F) | 0xD0;\n' />
                    <entry name='1:64' value='T4CON = (T4CON &amp; 0x0F) | 0xE0;\n' />
                    <entry name='1:128' value='T4CON = (T4CON &amp; 0x0F) | 0xF0;\n' />
                </prescale>
                <postscale name='Postscaler Rate' >
                    <entry name='1:1' value='T4CON = T4CON &amp; 0xF0;\n' />
                    <entry name='1:2' value='T4CON = (T4CON &amp; 0xF0) | 0x01;\n' />
                    <entry name='1:3' value='T4CON = (T4CON &amp; 0xF0) | 0x02;\n' />
                    <entry name='1:4' value='T4CON = (T4CON &amp; 0xF0) | 0x03;\n' />
                    <entry name='1:5' value='T4CON = (T4CON &amp; 0xF0) | 0x04;\n' />
                    <entry name='1:6' value='T4CON = (T4CON &amp; 0xF0) | 0x05;\n' />
                    <entry name='1:7' value='T4CON = (T4CON &amp; 0xF0) | 0x06;\n' />
                    <entry name='1:8' value='T4CON = (T4CON &amp; 0xF0) | 0x07;\n' />
                    <entry name='1:9' value='T4CON = (T4CON &amp; 0xF0) | 0x08;\n' />
                    <entry name='1:10' value='T4CON = (T4CON &amp; 0xF0) | 0x09;\n' />
                    <entry name='1:11' value='T4CON = (T4CON &amp; 0xF0) | 0x0A;\n' />
                    <entry name='1:12' value='T4CON = (T4CON &amp; 0xF0) | 0x0B;\n' />
                    <entry name='1:13' value='T4CON = (T4CON &amp; 0xF0) | 0x0C;\n' />
                    <entry name='1:14' value='T4CON = (T4CON &amp; 0xF0) | 0x0D;\n' />
                    <entry name='1:15' value='T4CON = (T4CON &amp; 0xF0) | 0x0E;\n' />
                    <entry name='1:16' value='T4CON = (T4CON &amp; 0xF0) | 0x0F;\n' />
                </postscale>
                <rollover name='Rollover Value' >
                    <entry name='256' min='1' max='256' value='T4PR=%d-1;\n' />
                </rollover>
            </options>
		</interrupt>
        <interrupt ident='INT0' type='pin' name='INT0 Pin' handler='#ifndef MX_INTHANDLER_PIR1_INT0IF\n#define MX_INTHANDLER_PIR1_INT0IF\nif (ts_bit(PIR1, INT0IF) &amp;&amp; ts_bit(PIE1, INT0IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR1, 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(PIE1, INT0IE);\n' disable='cr_bit(PIE1, 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(INTCON0, INT0EDG);\n' />
                    <entry name='Falling edge of INT' value='cr_bit(INTCON0, INT0EDG);\n' />
                </edge>
				<pps name='Remapped Pin Selection' >
                    <entry name='B0' port='1' pin='0' value='INT0PPS = 0x08;\n' />
                    <entry name='A0' port='0' pin='0' value='INT0PPS = 0x00;\n' />
                    <entry name='A1' port='0' pin='1' value='INT0PPS = 0x01;\n' />
                    <entry name='A2' port='0' pin='2' value='INT0PPS = 0x02;\n' />
                    <entry name='A3' port='0' pin='3' value='INT0PPS = 0x03;\n' />
                    <entry name='A4' port='0' pin='4' value='INT0PPS = 0x04;\n' />
                    <entry name='A5' port='0' pin='5' value='INT0PPS = 0x05;\n' />
                    <entry name='A6' port='0' pin='6' value='INT0PPS = 0x06;\n' />
                    <entry name='A7' port='0' pin='7' value='INT0PPS = 0x07;\n' />
                    <entry name='B0' port='1' pin='0' value='INT0PPS = 0x08;\n' />
                    <entry name='B1' port='1' pin='1' value='INT0PPS = 0x09;\n' />
                    <entry name='B2' port='1' pin='2' value='INT0PPS = 0x0A;\n' />
                    <entry name='B3' port='1' pin='3' value='INT0PPS = 0x0B;\n' />
                    <entry name='B4' port='1' pin='4' value='INT0PPS = 0x0C;\n' />
                    <entry name='B5' port='1' pin='5' value='INT0PPS = 0x0D;\n' />
                    <entry name='B6' port='1' pin='6' value='INT0PPS = 0x0E;\n' />
                    <entry name='B7' port='1' pin='7' value='INT0PPS = 0x0F;\n' />                    
                </pps>
            </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(PIR0, IOCIF) &amp;&amp; ts_bit(PIE0, IOCIE))\n{\n\tFCM_%n();\n\tmxtmp=PORTA;\n\tmxtmp=PORTB;\n\tmxtmp=PORTC;\n\tIOCAF=0;\n\tIOCBF=0;\n\tIOCCF=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;\nIOCBP=%pB0h;\nIOCBN=%pB0l;\nIOCCP=%pC0h;\nIOCCN=%pC0l;st_bit(PIE0, IOCIE);\n' disable='cr_bit(PIE0, IOCIE);\n' >
            <ioc config='0x0F' >
                <rising port='0' mask='0xFF' />
                <rising port='1' mask='0xFF' />
                <rising port='2' mask='0xFF' />
                <falling port='0' mask='0xFF' />
                <falling port='1' mask='0xFF' />
                <falling port='2' mask='0xFF' />
            </ioc>          
        </interrupt>
        <interrupt ident='INT1' type='pin' name='INT1 Pin' handler='#ifndef MX_INTHANDLER_PIR6_INT1IF\n#define MX_INTHANDLER_PIR6_INT1IF\nif (ts_bit(PIR6, INT1IF) &amp;&amp; ts_bit(PIE6, INT1IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR6, 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(PIE6, INT1IE);\n' disable='cr_bit(PIE6, 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(INTCON0, INT1EDG);\n' />
                    <entry name='Falling edge of INT' value='cr_bit(INTCON0, INT1EDG);\n' />
                </edge>
                <pps name='Remapped Pin Selection' >
		            <entry name='B1' port='1' pin='1' value='INT1PPS = 0x09;\n' />                    
                    <entry name='A0' port='0' pin='0' value='INT1PPS = 0x00;\n' />
                    <entry name='A1' port='0' pin='1' value='INT1PPS = 0x01;\n' />
                    <entry name='A2' port='0' pin='2' value='INT1PPS = 0x02;\n' />
                    <entry name='A3' port='0' pin='3' value='INT1PPS = 0x03;\n' />
                    <entry name='A4' port='0' pin='4' value='INT1PPS = 0x04;\n' />
                    <entry name='A5' port='0' pin='5' value='INT1PPS = 0x05;\n' />
                    <entry name='A6' port='0' pin='6' value='INT1PPS = 0x06;\n' />
                    <entry name='A7' port='0' pin='7' value='INT1PPS = 0x07;\n' />
                    <entry name='B0' port='1' pin='0' value='INT1PPS = 0x08;\n' />
                    <entry name='B1' port='1' pin='1' value='INT1PPS = 0x09;\n' />
                    <entry name='B2' port='1' pin='2' value='INT1PPS = 0x0A;\n' />
                    <entry name='B3' port='1' pin='3' value='INT1PPS = 0x0B;\n' />
                    <entry name='B4' port='1' pin='4' value='INT1PPS = 0x0C;\n' />
                    <entry name='B5' port='1' pin='5' value='INT1PPS = 0x0D;\n' />
                    <entry name='B6' port='1' pin='6' value='INT1PPS = 0x0E;\n' />
                    <entry name='B7' port='1' pin='7' value='INT1PPS = 0x0F;\n' />                    
                </pps>
            </options>
        </interrupt>
        <interrupt ident='INT2' type='pin' name='INT2 Pin' handler='#ifndef MX_INTHANDLER_PIR10_INT2IF\n#define MX_INTHANDLER_PIR10_INT2IF\nif (ts_bit(PIR10, INT2IF) &amp;&amp; ts_bit(PIE10, INT2IE))\n{\n\tFCM_%n();\n\tcr_bit(PIR10, 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(PIE10, INT2IE);\n' disable='cr_bit(PIE10, 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(INTCON0, INT2EDG);\n' />
                    <entry name='Falling edge of INT' value='cr_bit(INTCON0, INT2EDG);\n' />
                </edge>
                <pps name='Remapped Pin Selection' >
                    <entry name='B2' port='1' pin='2' value='INT2PPS = 0x0A;\n' />
                    <entry name='A0' port='0' pin='0' value='INT2PPS = 0x00;\n' />
                    <entry name='A1' port='0' pin='1' value='INT2PPS = 0x01;\n' />
                    <entry name='A2' port='0' pin='2' value='INT2PPS = 0x02;\n' />
                    <entry name='A3' port='0' pin='3' value='INT2PPS = 0x03;\n' />
                    <entry name='A4' port='0' pin='4' value='INT2PPS = 0x04;\n' />
                    <entry name='A5' port='0' pin='5' value='INT2PPS = 0x05;\n' />
                    <entry name='A6' port='0' pin='6' value='INT2PPS = 0x06;\n' />
                    <entry name='A7' port='0' pin='7' value='INT2PPS = 0x07;\n' />
                    <entry name='B0' port='1' pin='0' value='INT2PPS = 0x08;\n' />
                    <entry name='B1' port='1' pin='1' value='INT2PPS = 0x09;\n' />
                    <entry name='B2' port='1' pin='2' value='INT2PPS = 0x0A;\n' />
                    <entry name='B3' port='1' pin='3' value='INT2PPS = 0x0B;\n' />
                    <entry name='B4' port='1' pin='4' value='INT2PPS = 0x0C;\n' />
                    <entry name='B5' port='1' pin='5' value='INT2PPS = 0x0D;\n' />
                    <entry name='B6' port='1' pin='6' value='INT2PPS = 0x0E;\n' />
                    <entry name='B7' port='1' pin='7' value='INT2PPS = 0x0F;\n' />                    
                </pps>
            </options>
        </interrupt>
		<interrupt ident='RXINT0' type='comms' name='UART RXINT0' handler='#ifndef MX_INTHANDLER_PIR4_U1RXIF\n#define MX_INTHANDLER_PIR4_U1RXIF\nif (ts_bit(PIR4, U1RXIF) &amp;&amp; ts_bit(PIE4, U1RXIE))\n{\n\tFCM_%n();\n\tcr_bit(PIR4, U1RXIF);\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(PIE4, U1RXIE);\nst_bit(PIE4, U1RXIE);\n' disable='cr_bit(PIE4, U1RXIE);\n' />
		<interrupt ident='TXINT0' type='comms' name='UART TXINT0' handler='#ifndef MX_INTHANDLER_PIR4_U1TXIF\n#define MX_INTHANDLER_PIR4_U1TXIF\nif (ts_bit(PIR4, U1TXIF) &amp;&amp; ts_bit(PIE4, U1TXIE))\n{\n\tFCM_%n();\n\tcr_bit(PIR4, U1TXIF);\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(PIE4, U1TXIE);\nst_bit(PIE4, U1TXIE);\n' disable='cr_bit(PIE4, U1TXIE);\n' />
		<interrupt ident='RXINT1' type='comms' name='UART RXINT1' handler='#ifndef MX_INTHANDLER_PIR8_U2RXIF\n#define MX_INTHANDLER_PIR8_U2RXIF\nif (ts_bit(PIR8, U2RXIF) &amp;&amp; ts_bit(PIE8, U2RXIE))\n{\n\tFCM_%n();\n\tcr_bit(PIR8, U2RXIF);\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(PIE8, U2RXIE);\nst_bit(PIE8, U2RXIE);\n' disable='cr_bit(PIE8, U2RXIE);\n' />
		<interrupt ident='TXINT1' type='comms' name='UART TXINT1' handler='#ifndef MX_INTHANDLER_PIR8_U2TXIF\n#define MX_INTHANDLER_PIR8_U2TXIF\nif (ts_bit(PIR8, U2TXIF) &amp;&amp; ts_bit(PIE8, U2TXIE))\n{\n\tFCM_%n();\n\tcr_bit(PIR8, U2TXIF);\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(PIE8, U2TXIE);\nst_bit(PIE8, U2TXIE);\n' disable='cr_bit(PIE8, U2TXIE);\n' />
		<interrupt ident='RXINT2' type='comms' name='UART RXINT2' handler='#ifndef MX_INTHANDLER_PIR9_U3RXIF\n#define MX_INTHANDLER_PIR9_U3RXIF\nif (ts_bit(PIR9, U3RXIF) &amp;&amp; ts_bit(PIE9, U3RXIE))\n{\n\tFCM_%n();\n\tcr_bit(PIR9, U3RXIF);\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(PIE9, U3RXIE);\nst_bit(PIE9, U3RXIE);\n' disable='cr_bit(PIE9, U3RXIE);\n' />
		<interrupt ident='TXINT2' type='comms' name='UART TXINT2' handler='#ifndef MX_INTHANDLER_PIR9_U3TXIF\n#define MX_INTHANDLER_PIR9_U3TXIF\nif (ts_bit(PIR9, U3TXIF) &amp;&amp; ts_bit(PIE9, U3TXIE))\n{\n\tFCM_%n();\n\tcr_bit(PIR9, U3TXIF);\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(PIE9, U3TXIE);\nst_bit(PIE9, U3TXIE);\n' disable='cr_bit(PIE9, U3TXIE);\n' />
    </interrupts>
</device>
<inline >
    <defines code="//Missing TRISE workaround\nunsigned char TRISE;\n\n#define MX_PWM_NEW_TMR_CONF2\n#define MX_PWM_ALTTIMER 1\n\n#define MX_EE_DFM_Address 0x310000\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='ANSELA = 0x00;\nANSELB = 0x00;\nANSELC = 0x00;\n' />
    </main>
    <interrupt >
        <enable code='st_bit(INTCON0, GIE);\n' />
        <start code='void MX_INTERRUPT_MACRO(void)\n{\n' />
        <end code='}\n\n' />
        <init code='\n\n' />
    </interrupt>
    <config >
        <start code='//Configuration Start\n' />
        <body code='#pragma config $(address) = $(value)\n' />
        <end code='//Configuration End\n\n' />
    </config>
</inline>
<test >
    <icd >
        <clock port='1' pin='6' />
        <data port='1' pin='7' />
    </icd>
</test>
</root>
