<!-- CRC: EA277D0C7EF9B4E537B79187D0BE7A251886722DC685A1269E026350530CE43746C898E0B54162A3CC953E616DDD532E9A0D46BD3B6AACB92DE4D84759EBB5079CA9DA2D2BBCDAE2A4D1C56CD1580BF5AE40EBB5C1C873A6D88EE218E2D3B4BA504E1EB1BEB8BA6567AED69A94980258D59E8C371DE3D4B10923CA99C966FEF8528E182A7B61438459B87930CD4E9257C3FAE481F8959197D5B680581D3E6C1881147A3464D58BA5086944AE325796A6315B48C5ACD4C108C5C49724AA685735E5C3FF04B719BDEAB828D9FAEE7A88865484BB54CD7ADC26 -->
<!-- REVISION: 1.0 -->
<!-- GUID: 6BBE2AF7-FA6E-4EBB-88FE-4AF9F414ED4D -->
<!-- DATE: 08\08\2022 -->
<!-- DIR: FCD\AVR\ATMEGA2560.fcdx -->
<root>
<device name='ATMEGA2560' namealt='m2560' product='AVR' compiler='AVR' cal='AVR' family='ATMEGA' bits='8' >
    <clock max_speed='16000000' master_divider='1' default='8000000' />
    <memory >
        <flash bytes='262144' />
        <ram bytes='8192' />
    </memory>
    <configuration address='0x0000' mult='1' progonly='1' >
        <format><byte address='Low' value='0xFF' /><byte address='High' value='0xFF' /><byte address='Extended' value='0xFF' /></format>
        <setting />
        <settings >
            <setting name='SUT_CKSEL' offset='0' mask='63' bits='6' hint='Select Clock Source' >
                <option name='Ext. Clock, Start-up time: 6 CK + 0 ms' value='0' />
                <option name='Ext. Clock, Start-up time: 6 CK + 4.1 ms' value='16' />
                <option name='Ext. Clock, Start-up time: 6 CK + 65 ms' value='32' />
                <option name='Int. RC Osc., Start-up time: 6 CK + 0 ms' value='2' />
                <option name='Int. RC Osc., Start-up time: 6 CK + 4.1 ms' value='18' />
                <option name='Int. RC Osc., Start-up time: 6 CK + 65 ms' value='34' />
                <option name='Int. 128kHz RC Osc., Start-up time: 6 CK + 0 ms' value='3' />
                <option name='Int. 128kHz RC Osc., Start-up time: 6 CK + 4 ms' value='19' />
                <option name='Int. 128kHz RC Osc., Start-up time: 6 CK + 64 ms' value='35' />
                <option name='Ext. Low-Freq. Crystal, Start-up time: 1K CK + 0 ms' value='4' />
                <option name='Ext. Low-Freq. Crystal, Start-up time: 1K CK + 4.1 ms' value='20' />
                <option name='Ext. Low-Freq. Crystal, Start-up time: 1K CK + 65 ms' value='36' />
                <option name='Ext. Low-Freq. Crystal, Start-up time: 32K CK + 0 ms' value='5' />
                <option name='Ext. Low-Freq. Crystal, Start-up time: 32K CK + 4.1 ms' value='21' />
                <option name='Ext. Low-Freq. Crystal, Start-up time: 32K CK + 65 ms' value='37' />
                <option name='Full Swing Oscillator, Start-up time: 258 CK + 4.1 ms, Ceramic res., fast rising power' value='6' />
                <option name='Full Swing Oscillator, Start-up time: 258 CK + 65 ms, Ceramic res., slowly rising power' value='22' />
                <option name='Full Swing Oscillator, Start-up time: 1K CK + 0 ms, Ceramic res., BOD enable' value='38' />
                <option name='Full Swing Oscillator, Start-up time: 1K CK + 4.1 ms, Ceramic res., fast rising power' value='54' />
                <option name='Full Swing Oscillator, Start-up time: 1K CK + 65 ms, Ceramic res., slowly rising power' value='7' />
                <option name='Full Swing Oscillator, Start-up time: 16K CK + 0 ms, Crystal Osc., BOD enabled' value='23' />
                <option name='Full Swing Oscillator, Start-up time: 16K CK + 4.1 ms, Crystal Osc., fast rising power' value='39' />
                <option name='Full Swing Oscillator, Start-up time: 16K CK + 65 ms, Crystal Osc., slowly rising power' value='55' />
                <option name='Ext. Crystal Osc. 0.4-0.9 MHz, Start-up time: 258 CK + 4.1 ms' value='8' />
                <option name='Ext. Crystal Osc. 0.4-0.9 MHz, Start-up time: 258 CK + 65 ms' value='24' />
                <option name='Ext. Crystal Osc. 0.4-0.9 MHz, Start-up time: 1K CK + 0 ms' value='40' />
                <option name='Ext. Crystal Osc. 0.4-0.9 MHz, Start-up time: 1K CK + 4.1 ms' value='56' />
                <option name='Ext. Crystal Osc. 0.4-0.9 MHz, Start-up time: 1K CK + 65 ms' value='9' />
                <option name='Ext. Crystal Osc. 0.4-0.9 MHz, Start-up time: 16K CK + 0 ms' value='25' />
                <option name='Ext. Crystal Osc. 0.4-0.9 MHz, Start-up time: 16K CK + 4.1 ms' value='41' />
                <option name='Ext. Crystal Osc. 0.4-0.9 MHz, Start-up time: 16K CK + 65 ms' value='57' />
                <option name='Ext. Crystal Osc. 0.9-3.0 MHz, Start-up time: 258 CK + 4.1 ms' value='10' />
                <option name='Ext. Crystal Osc. 0.9-3.0 MHz, Start-up time: 258 CK + 65 ms' value='26' />
                <option name='Ext. Crystal Osc. 0.9-3.0 MHz, Start-up time: 1K CK + 0 ms' value='42' />
                <option name='Ext. Crystal Osc. 0.9-3.0 MHz, Start-up time: 1K CK + 4.1 ms' value='58' />
                <option name='Ext. Crystal Osc. 0.9-3.0 MHz, Start-up time: 1K CK + 65 ms' value='11' />
                <option name='Ext. Crystal Osc. 0.9-3.0 MHz, Start-up time: 16K CK + 0 ms' value='27' />
                <option name='Ext. Crystal Osc. 0.9-3.0 MHz, Start-up time: 16K CK + 4.1 ms' value='43' />
                <option name='Ext. Crystal Osc. 0.9-3.0 MHz, Start-up time: 16K CK + 65 ms' value='59' />
                <option name='Ext. Crystal Osc. 3.0-8.0 MHz, Start-up time: 258 CK + 4.1 ms' value='12' />
                <option name='Ext. Crystal Osc. 3.0-8.0 MHz, Start-up time: 258 CK + 65 ms' value='28' />
                <option name='Ext. Crystal Osc. 3.0-8.0 MHz, Start-up time: 1K CK + 0 ms' value='44' />
                <option name='Ext. Crystal Osc. 3.0-8.0 MHz, Start-up time: 1K CK + 4.1 ms' value='60' />
                <option name='Ext. Crystal Osc. 3.0-8.0 MHz, Start-up time: 1K CK + 65 ms' value='13' />
                <option name='Ext. Crystal Osc. 3.0-8.0 MHz, Start-up time: 16K CK + 0 ms' value='29' />
                <option name='Ext. Crystal Osc. 3.0-8.0 MHz, Start-up time: 16K CK + 4.1 ms' value='45' />
                <option name='Ext. Crystal Osc. 3.0-8.0 MHz, Start-up time: 16K CK + 65 ms' value='61' />
                <option name='Ext. Crystal Osc. 8.0-    MHz, Start-up time: 258 CK + 4.1 ms' value='14' />
                <option name='Ext. Crystal Osc. 8.0-    MHz, Start-up time: 258 CK + 65 ms' value='30' />
                <option name='Ext. Crystal Osc. 8.0-    MHz, Start-up time: 1K CK + 0 ms' value='46' />
                <option name='Ext. Crystal Osc. 8.0-    MHz, Start-up time: 1K CK + 4.1 ms' value='62' />
                <option name='Ext. Crystal Osc. 8.0-    MHz, Start-up time: 1K CK + 65 ms' value='15' />
                <option name='Ext. Crystal Osc. 8.0-    MHz, Start-up time: 16K CK + 0 ms' value='31' />
                <option name='Ext. Crystal Osc. 8.0-    MHz, Start-up time: 16K CK + 4.1 ms' value='47' />
                <option name='Ext. Crystal Osc. 8.0-    MHz, Start-up time: 16K CK + 65 ms' value='63' />
            </setting>
            <setting name='CKOUT' offset='6' mask='1' bits='1' hint='Clock output on PORTE7' >
                <option name='Enabled' value='0' />
                <option name='Disabled' value='1' />
            </setting>
            <setting name='CKDIV8' offset='7' mask='1' bits='1' hint='Divide clock by 8 internally' >
                <option name='Enabled' value='0' />
                <option name='Disabled' value='1' />
            </setting>
        </settings>
    </configuration>
    <pins sides='4' smd='1' >
        <pin name='(OC0B) PG5' port='6' bit='5' />
        <pin name='(RXD0/PCINT8) PE0' port='4' bit='0' />
        <pin name='(TXD0) PE1' port='4' bit='1' />
        <pin name='(XCK0/AIN0) PE2' port='4' bit='2' />
        <pin name='(OC3A/AIN1) PE3' port='4' bit='3' />
        <pin name='(OC3B/INT4) PE4' port='4' bit='4' />
        <pin name='(OC3C/INT5) PE5' port='4' bit='5' />
        <pin name='(T3/INT6) PE6' port='4' bit='6' />
        <pin name='(CLKO/ICP3/INT7) PE7' port='4' bit='7' />
        <pin name='VCC' />
        <pin name='GND' />
        <pin name='(RXD2) PH0' port='7' bit='0' />
        <pin name='(TXD2) PH1' port='7' bit='1' />
        <pin name='(XCK2) PH2' port='7' bit='2' />
        <pin name='(OC4A) PH3' port='7' bit='3' />
        <pin name='(OC4B) PH4' port='7' bit='4' />
        <pin name='(OC4C) PH5' port='7' bit='5' />
        <pin name='(OC2B) PH6' port='7' bit='6' />
        <pin name='(/SS/PCINT0) PB0' port='1' bit='0' />
        <pin name='(SCK/PCINT1) PB1' port='1' bit='1' />
        <pin name='(MOSI/PCINT2) PB2' port='1' bit='2' />
        <pin name='(MISO/PCINT3) PB3' port='1' bit='3' />
        <pin name='(OC0A/PCINT4) PB4' port='1' bit='4' />
        <pin name='(OC1A/PCINT5) PB5' port='1' bit='5' />
        <pin name='(OC1B/PCINT6) PB6' port='1' bit='6' />
        <pin name='(OC0A/OC1C/PCINT7) PB7' port='1' bit='7' />
        <pin name='(T4) PH7' port='7' bit='7' />
        <pin name='(TOSC2) PG3' port='6' bit='3' />
        <pin name='(TOSC1) PG4' port='6' bit='4' />
        <pin name='/RESET' />
        <pin name='VCC' />
        <pin name='GND' />
        <pin name='XTAL2' />
        <pin name='XTAL1' />
        <pin name='(ICP4) PL0' port='11' bit='0' />
        <pin name='(ICP5) PL1' port='11' bit='1' />
        <pin name='(T5) PL2' port='11' bit='2' />
        <pin name='(OC5A) PL3' port='11' bit='3' />
        <pin name='(OC5B) PL4' port='11' bit='4' />
        <pin name='(OC5C) PL5' port='11' bit='5' />
        <pin name='PL6' port='11' bit='6' />
        <pin name='PL7' port='11' bit='7' />
        <pin name='(SCL/INT0) PD0' port='3' bit='0' />
        <pin name='(SDA/INT1) PD1' port='3' bit='1' />
        <pin name='(RXD1/INT2) PD2' port='3' bit='2' />
        <pin name='(TXD1/INT3) PD3' port='3' bit='3' />
        <pin name='(ICP1) PD4' port='3' bit='4' />
        <pin name='(XCK1) PD5' port='3' bit='5' />
        <pin name='(T1) PD6' port='3' bit='6' />
        <pin name='(T0) PD7' port='3' bit='7' />
        <pin name='PG0 (/WR)' port='6' bit='0' />
        <pin name='PG1 (/RD)' port='6' bit='1' />
        <pin name='PC0 (A8)' port='2' bit='0' />
        <pin name='PC1 (A9)' port='2' bit='1' />
        <pin name='PC2 (A10)' port='2' bit='2' />
        <pin name='PC3 (A11)' port='2' bit='3' />
        <pin name='PC4 (A12)' port='2' bit='4' />
        <pin name='PC5 (A13)' port='2' bit='5' />
        <pin name='PC6 (A14)' port='2' bit='6' />
        <pin name='PC7 (A15)' port='2' bit='7' />
        <pin name='VCC' />
        <pin name='GND' />
        <pin name='PJ0 (RXD3/PCINT9)' port='9' bit='0' />
        <pin name='PJ1 (TXD3/PCINT10)' port='9' bit='1' />
        <pin name='PJ2 (XCK3/PCINT11)' port='9' bit='2' />
        <pin name='PJ3 (PCINT12)' port='9' bit='3' />
        <pin name='PJ4 (PCINT13)' port='9' bit='4' />
        <pin name='PJ5 (PCINT14)' port='9' bit='5' />
        <pin name='PJ6 (PCINT15)' port='9' bit='6' />
        <pin name='PG2 (ALE)' port='6' bit='2' />
        <pin name='PA7 (AD7)' port='0' bit='7' />
        <pin name='PA6 (AD6)' port='0' bit='6' />
        <pin name='PA5 (AD5)' port='0' bit='5' />
        <pin name='PA4 (AD4)' port='0' bit='4' />
        <pin name='PA3 (AD3)' port='0' bit='3' />
        <pin name='PA2 (AD2)' port='0' bit='2' />
        <pin name='PA1 (AD1)' port='0' bit='1' />
        <pin name='PA0 (AD0)' port='0' bit='0' />
        <pin name='PJ7' port='9' bit='7' />
        <pin name='VCC' />
        <pin name='GND' />
        <pin name='PK7 (ADC15/PCINT23)' port='10' bit='7' adc='15' />
        <pin name='PK6 (ADC14/PCINT22)' port='10' bit='6' adc='14' />
        <pin name='PK5 (ADC13/PCINT21)' port='10' bit='5' adc='13' />
        <pin name='PK4 (ADC12/PCINT20)' port='10' bit='4' adc='12' />
        <pin name='PK3 (ADC11/PCINT19)' port='10' bit='3' adc='11' />
        <pin name='PK2 (ADC10/PCINT18)' port='10' bit='2' adc='10' />
        <pin name='PK1 (ADC9/PCINT17)' port='10' bit='1' adc='9' />
        <pin name='PK0 (ADC8/PCINT16)' port='10' bit='0' adc='8' />
        <pin name='PF7 (ADC7/TDI)' port='5' bit='7' adc='7' />
        <pin name='PF6 (ADC6/TDO)' port='5' bit='6' adc='6' />
        <pin name='PF5 (ADC5/TMS)' port='5' bit='5' adc='5' />
        <pin name='PF4 (ADC4/TCK)' port='5' bit='4' adc='4' />
        <pin name='PF3 (ADC3)' port='5' bit='3' adc='3' />
        <pin name='PF2 (ADC2)' port='5' bit='2' adc='2' />
        <pin name='PF1 (ADC1)' port='5' bit='1' adc='1' />
        <pin name='PF0 (ADC0)' port='5' bit='0' adc='0' />
        <pin name='AREF' />
        <pin name='GND' />
        <pin name='AVCC' />
    </pins>
    <adc type='10' bits='10' >
        <speed >
            <option name='Fosc / 2' value='1' />
            <option name='Fosc / 4' value='2' />
            <option name='Fosc / 8' value='3' />
            <option name='Fosc / 16' value='4' />
            <option name='Fosc / 32' value='5' />
            <option name='Fosc / 64' value='6' />
            <option name='Fosc / 128' value='7' />
        </speed>
        <vref>
            <option name='AREF' value='0' />
            <option name='AVCC' value='1' />
            <option name='Internal 1.1V' value='2' />
            <option name='Internal 2.56V' value='3' />
        </vref>
    </adc>
    <eeprom type='1' bytes='4096' />
    <spi >
        <miso port='1' pin='3' />
        <mosi port='1' pin='2' />
        <clk port='1' pin='1' />
        <ss port='1' pin='0' />
    </spi>
    
    <uart>
      <tx port="4" pin="1" />
      <rx port="4" pin="0" />
    </uart>

    <uart>
      <tx port="3" pin="3" />
      <rx port="3" pin="2" />
    </uart>

    <uart>
      <tx port="7" pin="1" />
      <rx port="7" pin="0" />
    </uart>

    <uart>
      <tx port="8" pin="1" />
      <rx port="8" pin="0" />
    </uart>
    
    <i2c master='1' >
        <sda port='3' pin='1' />
        <scl port='3' pin='0' />
    </i2c>
    <pwm type='1' >
        <timer >
            <option name='timer0' count='2' />
            <option name='timer1' count='3' />
            <option name='timer2' count='2' />
            <option name='timer3' count='3' />
            <option name='timer4' count='3' />
            <option name='timer5' count='3' />
        </timer>
        <prescaler >
            <option name='1' value='1' />
            <option name='8' value='8' />
            <option name='64' value='64' />
            <option name='256' value='256' />
            <option name='1024' value='1024' />
        </prescaler>
        <out port='1' pin='7' />
        <out port='6' pin='5' />
        <out port='1' pin='5' />
        <out port='1' pin='6' />
        <out port='1' pin='7' />
        <out port='1' pin='4' />
        <out port='7' pin='6' />
        <out port='4' pin='3' />
        <out port='4' pin='4' />
        <out port='4' pin='5' />
        <out port='7' pin='3' />
        <out port='7' pin='4' />
        <out port='7' pin='5' />
        <out port='10' pin='3' />
        <out port='10' pin='4' />
        <out port='10' pin='5' />
    </pwm>
    <interrupts >
        <interrupt ident='TMR0' regl='TCNT0' regh='' type='timer8' name='Timer 0' handler='#ifndef MX_TIMER0OVF_HANDLER\n#define MX_TIMER0OVF_HANDLER\nISR(TIMER0_OVF_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;TIMER0 OVF&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='TIMSK0 |= (1 &lt;&lt; TOIE0);\n' disable='TIMSK0 &amp;= ~(1 &lt;&lt; TOIE0);\n' >
            <timer overflow='256' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='no clock' value='TCCR0B &amp;= 0xf8;\n' />
                    <entry name='1:1' value='TCCR0B &amp;= 0xf8;\nTCCR0B |= 0x01;\n' />
                    <entry name='1:8' value='TCCR0B &amp;= 0xf8;\nTCCR0B |= 0x02;\n' />
                    <entry name='1:64' value='TCCR0B &amp;= 0xf8;\nTCCR0B |= 0x03;\n' />
                    <entry name='1:256' value='TCCR0B &amp;= 0xf8;\nTCCR0B |= 0x04;\n' />
                    <entry name='1:1024' value='TCCR0B &amp;= 0xf8;\nTCCR0B |= 0x05;\n' />
                    <entry name='T0 pin, -ve edge' value='TCCR0B &amp;= 0xf8;\nTCCR0B |= 0x06;\n' />
                    <entry name='T0 pin, +ve edge' value='TCCR0B &amp;= 0xf8;\nTCCR0B |= 0x07;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='TMR1' regl='TCNT1L' regh='TCNT1H' type='timer16' name='Timer 1' handler='#ifndef MX_TIMER1OVF_HANDLER\n#define MX_TIMER1OVF_HANDLER\nISR(TIMER1_OVF_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;TIMER1 OVF&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='TIMSK1 |= (1 &lt;&lt; TOIE1);\n' disable='TIMSK1 &amp;= ~(1 &lt;&lt; TOIE1);\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='no clock' value='TCCR1B &amp;= 0xf8;\n' />
                    <entry name='1:1' value='TCCR1B &amp;= 0xf8;\nTCCR1B |= 0x01;\n' />
                    <entry name='1:8' value='TCCR1B &amp;= 0xf8;\nTCCR1B |= 0x02;\n' />
                    <entry name='1:64' value='TCCR1B &amp;= 0xf8;\nTCCR1B |= 0x03;\n' />
                    <entry name='1:256' value='TCCR1B &amp;= 0xf8;\nTCCR1B |= 0x04;\n' />
                    <entry name='1:1024' value='TCCR1B &amp;= 0xf8;\nTCCR1B |= 0x05;\n' />
                    <entry name='T0 pin, -ve edge' value='TCCR1B &amp;= 0xf8;\nTCCR1B |= 0x06;\n' />
                    <entry name='T0 pin, +ve edge' value='TCCR1B &amp;= 0xf8;\nTCCR1B |= 0x07;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='TMR2' regl='TCNT2' regh='' type='timer8' name='Timer 2' handler='#ifndef MX_TIMER2OVF_HANDLER\n#define MX_TIMER2OVF_HANDLER\nISR(TIMER2_OVF_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;TIMER2 OVF&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='TIMSK2 |= (1 &lt;&lt; TOIE2);\n' disable='TIMSK2 &amp;= ~(1 &lt;&lt; TOIE2);\n' >
            <timer overflow='256' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='no clock' value='TCCR2B &amp;= 0xf8;\n' />
                    <entry name='1:1' value='TCCR2B &amp;= 0xf8;\nTCCR2B |= 0x01;\n' />
                    <entry name='1:8' value='TCCR2B &amp;= 0xf8;\nTCCR2B |= 0x02;\n' />
                    <entry name='1:64' value='TCCR2B &amp;= 0xf8;\nTCCR2B |= 0x03;\n' />
                    <entry name='1:256' value='TCCR2B &amp;= 0xf8;\nTCCR2B |= 0x04;\n' />
                    <entry name='1:1024' value='TCCR2B &amp;= 0xf8;\nTCCR2B |= 0x05;\n' />
                    <entry name='T0 pin, -ve edge' value='TCCR2B &amp;= 0xf8;\nTCCR2B |= 0x06;\n' />
                    <entry name='T0 pin, +ve edge' value='TCCR2B &amp;= 0xf8;\nTCCR2B |= 0x07;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='TMR3' regl='TCNT3L' regh='TCNT3H' type='timer16' name='Timer 3' handler='#ifndef MX_TIMER3OVF_HANDLER\n#define MX_TIMER3OVF_HANDLER\nISR(TIMER3_OVF_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;TIMER3 OVF&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='TIMSK3 |= (1 &lt;&lt; TOIE3);\n' disable='TIMSK3 &amp;= ~(1 &lt;&lt; TOIE3);\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='no clock' value='TCCR3B &amp;= 0xf8;\n' />
                    <entry name='1:1' value='TCCR3B &amp;= 0xf8;\nTCCR3B |= 0x01;\n' />
                    <entry name='1:8' value='TCCR3B &amp;= 0xf8;\nTCCR3B |= 0x02;\n' />
                    <entry name='1:64' value='TCCR3B &amp;= 0xf8;\nTCCR3B |= 0x03;\n' />
                    <entry name='1:256' value='TCCR3B &amp;= 0xf8;\nTCCR3B |= 0x04;\n' />
                    <entry name='1:1024' value='TCCR3B &amp;= 0xf8;\nTCCR3B |= 0x05;\n' />
                    <entry name='T0 pin, -ve edge' value='TCCR3B &amp;= 0xf8;\nTCCR3B |= 0x06;\n' />
                    <entry name='T0 pin, +ve edge' value='TCCR3B &amp;= 0xf8;\nTCCR3B |= 0x07;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='TMR4' regl='TCNT4L' regh='TCNT4H' type='timer16' name='Timer 4' handler='#ifndef MX_TIMER4OVF_HANDLER\n#define MX_TIMER4OVF_HANDLER\nISR(TIMER4_OVF_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;TIMER4 OVF&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='TIMSK4 |= (1 &lt;&lt; TOIE4);\n' disable='TIMSK4 &amp;= ~(1 &lt;&lt; TOIE4);\n' >
            <timer overflow='65536' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='no clock' value='TCCR4B &amp;= 0xf8;\n' />
                    <entry name='1:1' value='TCCR4B &amp;= 0xf8;\nTCCR4B |= 0x01;\n' />
                    <entry name='1:8' value='TCCR4B &amp;= 0xf8;\nTCCR4B |= 0x02;\n' />
                    <entry name='1:64' value='TCCR4B &amp;= 0xf8;\nTCCR4B |= 0x03;\n' />
                    <entry name='1:256' value='TCCR4B &amp;= 0xf8;\nTCCR4B |= 0x04;\n' />
                    <entry name='1:1024' value='TCCR4B &amp;= 0xf8;\nTCCR4B |= 0x05;\n' />
                    <entry name='T0 pin, -ve edge' value='TCCR4B &amp;= 0xf8;\nTCCR4B |= 0x06;\n' />
                    <entry name='T0 pin, +ve edge' value='TCCR4B &amp;= 0xf8;\nTCCR4B |= 0x07;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='TMR5' regl='TCNT5L' regh='TCNT5H' type='timer8' name='Timer 5' handler='#ifndef MX_TIMER5OVF_HANDLER\n#define MX_TIMER5OVF_HANDLER\nISR(TIMER5_OVF_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;TIMER5 OVF&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='TIMSK5 |= (1 &lt;&lt; TOIE5);\n' disable='TIMSK5 &amp;= ~(1 &lt;&lt; TOIE5);\n' >
            <timer overflow='256' extrange='0' />
            <options >
                <prescale name='Prescaler Rate' >
                    <entry name='no clock' value='TCCR5B &amp;= 0xf8;\n' />
                    <entry name='1:1' value='TCCR5B &amp;= 0xf8;\nTCCR5B |= 0x01;\n' />
                    <entry name='1:8' value='TCCR5B &amp;= 0xf8;\nTCCR5B |= 0x02;\n' />
                    <entry name='1:64' value='TCCR5B &amp;= 0xf8;\nTCCR5B |= 0x03;\n' />
                    <entry name='1:256' value='TCCR5B &amp;= 0xf8;\nTCCR5B |= 0x04;\n' />
                    <entry name='1:1024' value='TCCR5B &amp;= 0xf8;\nTCCR5B |= 0x05;\n' />
                    <entry name='T0 pin, -ve edge' value='TCCR5B &amp;= 0xf8;\nTCCR5B |= 0x06;\n' />
                    <entry name='T0 pin, +ve edge' value='TCCR5B &amp;= 0xf8;\nTCCR5B |= 0x07;\n' />
                </prescale>
            </options>
        </interrupt>
        <interrupt ident='IOC0' type='multipin' name='IOC PORT B' handler='#ifndef MX_PCINT0_HANDLER\n#define MX_PCINT0_HANDLER\nISR(PCINT0_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;PORTB Change&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='PCMSK0 = %pB*v;\nPCICR |= (1 &lt;&lt; PCIE0);\n' disable='PCICR &amp;= ~(1 &lt;&lt; PCIE0);\n' >
            <ioc config='0x0C' >
                <rising port='1' mask='0xFF' />
                <falling port='1' mask='0xFF' />
            </ioc>
        </interrupt>
        <interrupt ident='IOC1' type='multipin' name='IOC PORT J' handler='#ifndef MX_PCINT1_HANDLER\n#define MX_PCINT1_HANDLER\nISR(PCINT1_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;PORTJ Change&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='PCMSK1 = ((%pJ*v &amp; 0x7F) &lt;&lt; 1);\nPCICR |= (1 &lt;&lt; PCIE1);\n' disable='PCICR &amp;= ~(1 &lt;&lt; PCIE1);\n' >
            <ioc config='0x0C' >
                <rising port='9' mask='0x7F' />
                <falling port='9' mask='0x7F' />
            </ioc>
        </interrupt>
        <interrupt ident='IOC2' type='multipin' name='IOC PORT K' handler='#ifndef MX_PCINT2_HANDLER\n#define MX_PCINT2_HANDLER\nISR(PCINT2_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;PORTH Change&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='PCMSK2 = %pK*v;\nPCICR |= (1 &lt;&lt; PCIE2);\n' disable='PCICR &amp;= ~(1 &lt;&lt; PCIE2);\n' >
            <ioc config='0x0C' >
                <rising port='10' mask='0xFF' />
                <falling port='10' mask='0xFF' />
            </ioc>
        </interrupt>
        <interrupt ident='INT0' type='pin' name='INT0 Input' handler='#ifndef MX_INT0_HANDLER\n#define MX_INT0_HANDLER\nISR(INT0_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;INT0 Input&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='EIMSK |= (1 &lt;&lt; INT0);\n' disable='EIMSK &amp;= ~(1 &lt;&lt; INT0);\n' >
            <ioc config='3' >
                <rising port='3' mask='1' />
                <falling port='3' mask='1' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='EICRA |= (1 &lt;&lt; ISC01) | (1 &lt;&lt; ISC00);\n' />
                    <entry name='Falling edge of INT' value='EICRA |= (1 &lt;&lt; ISC01);\nEICRA &amp;= ~(1 &lt;&lt; ISC00);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT1' type='pin' name='INT1 Input' handler='#ifndef MX_INT1_HANDLER\n#define MX_INT1_HANDLER\nISR(INT1_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;INT1 Input&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='EIMSK |= (1 &lt;&lt; INT1);\n' disable='EIMSK &amp;= ~(1 &lt;&lt; INT1);\n' >
            <ioc config='3' >
                <rising port='3' mask='2' />
                <falling port='3' mask='2' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='EICRA |= (1 &lt;&lt; ISC11) | (1 &lt;&lt; ISC10);\n' />
                    <entry name='Falling edge of INT' value='EICRA |= (1 &lt;&lt; ISC11);\nEICRA &amp;= ~(1 &lt;&lt; ISC10);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT2' type='pin' name='INT2 Input' handler='#ifndef MX_INT2_HANDLER\n#define MX_INT2_HANDLER\nISR(INT2_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;INT2 Input&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='EIMSK |= (1 &lt;&lt; INT2);\n' disable='EIMSK &amp;= ~(1 &lt;&lt; INT2);\n' >
            <ioc config='3' >
                <rising port='3' mask='4' />
                <falling port='3' mask='4' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='EICRA |= (1 &lt;&lt; ISC21) | (1 &lt;&lt; ISC20);\n' />
                    <entry name='Falling edge of INT' value='EICRA |= (1 &lt;&lt; ISC21);\nEICRA &amp;= ~(1 &lt;&lt; ISC20);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT3' type='pin' name='INT3 Input' handler='#ifndef MX_INT3_HANDLER\n#define MX_INT3_HANDLER\nISR(INT3_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;INT3 Input&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='EIMSK |= (1 &lt;&lt; INT3);\n' disable='EIMSK &amp;= ~(1 &lt;&lt; INT3);\n' >
            <ioc config='3' >
                <rising port='3' mask='8' />
                <falling port='3' mask='8' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='EICRA |= (1 &lt;&lt; ISC31) | (1 &lt;&lt; ISC30);\n' />
                    <entry name='Falling edge of INT' value='EICRA |= (1 &lt;&lt; ISC31);\nEICRA &amp;= ~(1 &lt;&lt; ISC30);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT4' type='pin' name='INT4 Input' handler='#ifndef MX_INT4_HANDLER\n#define MX_INT4_HANDLER\nISR(INT4_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;INT4 Input&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='EIMSK |= (1 &lt;&lt; INT4);\n' disable='EIMSK &amp;= ~(1 &lt;&lt; INT4);\n' >
            <ioc config='3' >
                <rising port='4' mask='16' />
                <falling port='4' mask='16' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='EICRB |= (1 &lt;&lt; ISC41) | (1 &lt;&lt; ISC40);\n' />
                    <entry name='Falling edge of INT' value='EICRB |= (1 &lt;&lt; ISC41);\nEICRB &amp;= ~(1 &lt;&lt; ISC40);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT5' type='pin' name='INT5 Input' handler='#ifndef MX_INT5_HANDLER\n#define MX_INT5_HANDLER\nISR(INT5_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;INT5 Input&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='EIMSK |= (1 &lt;&lt; INT5);\n' disable='EIMSK &amp;= ~(1 &lt;&lt; INT5);\n' >
            <ioc config='3' >
                <rising port='4' mask='32' />
                <falling port='4' mask='32' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='EICRB |= (1 &lt;&lt; ISC51) | (1 &lt;&lt; ISC50);\n' />
                    <entry name='Falling edge of INT' value='EICRB |= (1 &lt;&lt; ISC51);\nEICRB &amp;= ~(1 &lt;&lt; ISC50);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT6' type='pin' name='INT6 Input' handler='#ifndef MX_INT6_HANDLER\n#define MX_INT6_HANDLER\nISR(INT6_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;INT6 Input&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='EIMSK |= (1 &lt;&lt; INT6);\n' disable='EIMSK &amp;= ~(1 &lt;&lt; INT6);\n' >
            <ioc config='3' >
                <rising port='4' mask='64' />
                <falling port='4' mask='64' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='EICRB |= (1 &lt;&lt; ISC61) | (1 &lt;&lt; ISC60);\n' />
                    <entry name='Falling edge of INT' value='EICRB |= (1 &lt;&lt; ISC61);\nEICRB &amp;= ~(1 &lt;&lt; ISC60);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='INT7' type='pin' name='INT7 Input' handler='#ifndef MX_INT7_HANDLER\n#define MX_INT7_HANDLER\nISR(INT7_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;INT7 Input&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='EIMSK |= (1 &lt;&lt; INT7);\n' disable='EIMSK &amp;= ~(1 &lt;&lt; INT7);\n' >
            <ioc config='3' >
                <rising port='4' mask='128' />
                <falling port='4' mask='128' />
            </ioc>
            <options >
                <edge name='Interrupt Edge Select' >
                    <entry name='Rising edge of INT' value='EICRB |= (1 &lt;&lt; ISC71) | (1 &lt;&lt; ISC70);\n' />
                    <entry name='Falling edge of INT' value='EICRB |= (1 &lt;&lt; ISC71);\nEICRB &amp;= ~(1 &lt;&lt; ISC70);\n' />
                </edge>
            </options>
        </interrupt>
        <interrupt ident='RXINT0' type='comms' name='UART0 RX' handler='#ifndef MX_UART0_RX_HANDLER\n#define MX_UART0_RX_HANDLER\nISR(USART0_RX_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;UART0 RX&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='UCSR0B |= (1 &lt;&lt; RXCIE0);\n' disable='UCSR0B &amp;=  ~(1 &lt;&lt; RXCIE0);\n' />
        <interrupt ident='RXINT1' type='comms' name='UART1 RX' handler='#ifndef MX_UART1_RX_HANDLER\n#define MX_UART1_RX_HANDLER\nISR(USART1_RX_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;UART1 RX&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='UCSR1B |= (1 &lt;&lt; RXCIE1);\n' disable='UCSR1B &amp;=  ~(1 &lt;&lt; RXCIE1);\n' />
		<interrupt ident='RXINT2' type='comms' name='UART2 RX' handler='#ifndef MX_UART2_RX_HANDLER\n#define MX_UART2_RX_HANDLER\nISR(USART2_RX_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;UART2 RX&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='UCSR2B |= (1 &lt;&lt; RXCIE2);\n' disable='UCSR2B &amp;=  ~(1 &lt;&lt; RXCIE2);\n' />
		<interrupt ident='RXINT3' type='comms' name='UART3 RX' handler='#ifndef MX_UART3_RX_HANDLER\n#define MX_UART3_RX_HANDLER\nISR(USART3_RX_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The &lt;UART3 RX&gt; interrupt has previously been enabled, so the macro &lt;%n&gt; may never get called.\n#endif\n' enable='UCSR3B |= (1 &lt;&lt; RXCIE3);\n' disable='UCSR3B &amp;=  ~(1 &lt;&lt; RXCIE3);\n' />
	</interrupts>
</device>
<inline >
    <defines code="#define MX_UART_ID\n#define MX_UART_UCSRC\n\n#include &lt;stdlib.h&gt;\n#include &lt;stdio.h&gt;\n#include &lt;math.h&gt;\n#include &lt;avr\io.h&gt;\n#include &lt;avr\interrupt.h&gt;\n#include &lt;avr\eeprom.h&gt;\n#include &lt;avr\wdt.h&gt;\n\n" />
    <directives code="" />
    <main >
        <start code='int main()\n{\n' />
        <end code='\tmainendloop: goto mainendloop;\n}\n\n' />
        <init code='\tMCUCR=0x00;\n\tMCUSR=0x00;\n\twdt_disable();\n' />
    </main>
    <interrupt >
        <enable code='sei();\n' />
        <start code='' />
        <end code='' />
        <init code='\tEIMSK=0x00;\n\n' />
    </interrupt>
    <config >
        <start code='//Configuration Start\n' />
        <body code='' />
        <end code='//Configuration End\n\n' />
    </config>
</inline>
<test >
    <icd >
        <clock port='1' pin='6' />
        <data port='1' pin='7' />
    </icd>
</test>
</root>
