<fcd>


  <build>
    <compiler exe="$(appdir)compilers\avr\batchfiles\avra.bat" params="$(chip:l) &quot;$(outdir)$(target).elf&quot; &quot;$(outdir)$(target).c&quot; &quot;$(outdir)$(target).lst&quot;" />		
    <linker exe="$(appdir)compilers\avr\batchfiles\avrb.bat" params="&quot;$(outdir)$(target).elf&quot; &quot;$(outdir)$(target).hex&quot; &quot;$(outdir)$(target).cof&quot;" />
    <programmer exe="$(appdir)compilers\avr\batchfiles\avrc_arduinoB.bat" params="$(chipalt) stk500v2 com7 115200 &quot;$(target).hex&quot;" UsesComm="1" />
  </build>

  <device file="Arduino Mega 2560"
          name="ATMEGA2560"
          namealt="m2560"
          product="AVR"
          family="ATMEGA"
          bits="8" >

    <comminfo pid="0010"
          vid="2341"
          devdesc="Arduino Mega 2560" />

    <clock max_speed="16000000"
           master_divider="1"
           fixed="16000000" />

    <memory>
      <flash bytes="262144" />
      <ram bytes="8192" />
    </memory>

    <configuration address="0x0000"
                   mult="1" >
      <format>
      </format>

      <setting>
      </setting>

    </configuration>

    <pins sides="4" smd="1" >
        <pin name="DIGITAL PIN 4 PWM(2) PG5" port="6" bit="5" />
        <pin name="DIGITAL PIN 0 RX0 PE0" port="4" bit="0" />
        <pin name="DIGITAL PIN 1 TX0 PE1" port="4" bit="1" />
        <pin name="PE2" port="4" bit="2" />
        <pin name="DIGITAL PIN 5 PWM(8)  PE3" port="4" bit="3" />
        <pin name="DIGITAL PIN 2 PWM(9) PE4" port="4" bit="4" />
        <pin name="DIGITAL PIN 3 PWM(10) PE5" port="4" bit="5" />
        <pin name="PE6" port="4" bit="6" />
        <pin name="PE7" port="4" bit="7" />
        <pin name="VCC" />
        <pin name="GND" />
        <pin name="DIGITAL PIN 17 RX2 PHO" port="7" bit="0" />
        <pin name="DIGITAL PIN 16 TX2 PH1" port="7" bit="1" />
        <pin name="PH2" port="7" bit="2" />
        <pin name="DIGITAL PIN 6 PWM(11) PH3" port="7" bit="3" />
        <pin name="DIGITAL PIN 7 PWM(12) PH4" port="7" bit="4" />
        <pin name="DIGITAL PIN 8 PWM(13) PH5" port="7" bit="5" />
        <pin name="DIGITAL PIN 9 PWM(7) PH6" port="7" bit="6" />
        <pin name="DIGITAL PIN 53 SS PB0" port="1" bit="0" />
        <pin name="DIGITAL PIN 52 SCK PB1" port="1" bit="1" />
        <pin name="DIGITAL PIN 51 MOSI PB2" port="1" bit="2" />
        <pin name="DIGITAL PIN 50 MISO PB3" port="1" bit="3" />
        <pin name="DIGITAL PIN 10 PWM(6) PB4" port="1" bit="4" />
        <pin name="DIGITAL PIN 11 PWM(3) PB5" port="1" bit="5" />
        <pin name="DIGITAL PIN 12 PWM(4) PB6" port="1" bit="6" />
        <pin name="DIGITAL PIN 13 PWM(1/5) PB7" port="1" bit="7" />
        <pin name="PH7" port="7" bit="7" />
        <pin name="PG3" port="6" bit="3" />
        <pin name="PG4" port="6" bit="4" />
        <pin name="/RESET" />
        <pin name="VCC" />
        <pin name="GND" />
        <pin name="XTAL2" />
        <pin name="XTAL1" />
        <pin name="DIGITAL PIN 49 PL0" port="11" bit="0" />
        <pin name="DIGITAL PIN 48 PL1" port="11" bit="1" />
        <pin name="DIGITAL PIN 47 PL2" port="11" bit="2" />
        <pin name="DIGITAL PIN 46 PWM(14) PL3" port="11" bit="3" />
        <pin name="DIGITAL PIN 45 PWM(15) PL4" port="11" bit="4" />
        <pin name="DIGITAL PIN 44 PWM(16) PL5" port="11" bit="5" />
        <pin name="DIGITAL PIN 43 PL6" port="11" bit="6" />
        <pin name="DIGITAL PIN 42 PL7" port="11" bit="7" />
        <pin name="DIGITAL PIN 21 SCL PD0" port="3" bit="0" />
        <pin name="DIGITAL PIN 20 SDA PD1" port="3" bit="1" />
        <pin name="DIGITAL PIN 19 RX1 PD2" port="3" bit="2" />
        <pin name="DIGITAL PIN 18 TX1 PD3" port="3" bit="3" />
        <pin name="PD4" port="3" bit="4" />
        <pin name="PD5" port="3" bit="5" />
        <pin name="PD6" port="3" bit="6" />
        <pin name="DIGITAL PIN 38 PD7" port="3" bit="7" />
        <pin name="PG0 DIGITAL PIN 41" port="6" bit="0" />
        <pin name="PG1 DIGITAL PIN 40" port="6" bit="1" />
        <pin name="PC0 DIGITAL PIN 37" port="2" bit="0" />
        <pin name="PC1 DIGITAL PIN 36" port="2" bit="1" />
        <pin name="PC2 DIGITAL PIN 35" port="2" bit="2" />
        <pin name="PC3 DIGITAL PIN 34" port="2" bit="3" />
        <pin name="PC4 DIGITAL PIN 33" port="2" bit="4" />
        <pin name="PC5 DIGITAL PIN 32" port="2" bit="5" />
        <pin name="PC6 DIGITAL PIN 31" port="2" bit="6" />
        <pin name="PC7 DIGITAL PIN 30" port="2" bit="7" />
        <pin name="VCC" />
        <pin name="GND" />
        <pin name="PJ0 DIGITAL PIN 15 RX3" port="9" bit="0" />
        <pin name="PJ1 DIGITAL PIN 14 TX3" port="9" bit="1" />
        <pin name="PJ2" port="9" bit="2" />
        <pin name="PJ3" port="9" bit="3" />
        <pin name="PJ4" port="9" bit="4" />
        <pin name="PJ5" port="9" bit="5" />
        <pin name="PJ6" port="9" bit="6" />
        <pin name="PG2 DIGITAL PIN 39" port="6" bit="2" />
        <pin name="PA7 DIGITAL PIN 29" port="0" bit="7" />
        <pin name="PA6 DIGITAL PIN 28" port="0" bit="6" />
        <pin name="PA5 DIGITAL PIN 27" port="0" bit="5" />
        <pin name="PA4 DIGITAL PIN 26" port="0" bit="4" />
        <pin name="PA3 DIGITAL PIN 25" port="0" bit="3" />
        <pin name="PA2 DIGITAL PIN 24" port="0" bit="2" />
        <pin name="PA1 DIGITAL PIN 23" port="0" bit="1" />
        <pin name="PA0 DIGITAL PIN 22" port="0" bit="0" />
        <pin name="PJ7" port="9" bit="7" />
        <pin name="VCC" />
        <pin name="GND" />
        <pin name="PK7 ANALOG 15" port="10" bit="7" adc="15" />
        <pin name="PK6 ANALOG 14" port="10" bit="6" adc="14" />
        <pin name="PK5 ANALOG 13" port="10" bit="5" adc="13" />
        <pin name="PK4 ANALOG 12" port="10" bit="4" adc="12" />
        <pin name="PK3 ANALOG 11" port="10" bit="3" adc="11" />
        <pin name="PK2 ANALOG 10" port="10" bit="2" adc="10" />
        <pin name="PK1 ANALOG 9" port="10" bit="1" adc="9" />
        <pin name="PK0 ANALOG 8" port="10" bit="0" adc="8" />
        <pin name="PF7 ANALOG 7" port="5" bit="7" adc="7" />
        <pin name="PF6 ANALOG 6" port="5" bit="6" adc="6" />
        <pin name="PF5 ANALOG 5" port="5" bit="5" adc="5" />
        <pin name="PF4 ANALOG 4" port="5" bit="4" adc="4" />
        <pin name="PF3 ANALOG 3" port="5" bit="3" adc="3" />
        <pin name="PF2 ANALOG 2" port="5" bit="2" adc="2" />
        <pin name="PF1 ANALOG 1" port="5" bit="1" adc="1" />
        <pin name="PF0 ANALOG 0" 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>
    </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"
          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 <TIMER0 OVF> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n'
          enable="TIMSK0 |= (1 << TOIE0);\n"
          disable="TIMSK0 &= ~(1 << TOIE0);\n" >
        <timer overflow="256" extrange="0" />
        <options>
          <prescale name="Prescaler Rate">
            <entry name="no clock" value ="TCCR0B &= 0xf8;\n" />
            <entry name="1:1" value ="TCCR0B &= 0xf8;\nTCCR0B |= 0x01;\n" />
            <entry name="1:8" value ="TCCR0B &= 0xf8;\nTCCR0B |= 0x02;\n" />
            <entry name="1:64" value ="TCCR0B &= 0xf8;\nTCCR0B |= 0x03;\n" />
            <entry name="1:256" value ="TCCR0B &= 0xf8;\nTCCR0B |= 0x04;\n" />
            <entry name="1:1024" value ="TCCR0B &= 0xf8;\nTCCR0B |= 0x05;\n" />
            <entry name="T0 pin, -ve edge" value ="TCCR0B &= 0xf8;\nTCCR0B |= 0x06;\n" />
            <entry name="T0 pin, +ve edge" value ="TCCR0B &= 0xf8;\nTCCR0B |= 0x07;\n" />
          </prescale>
        </options>
      </interrupt>

      <interrupt
          ident="TMR1"
          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 <TIMER1 OVF> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n'
          enable="TIMSK1 |= (1 << TOIE1);\n"
          disable="TIMSK1 &= ~(1 << TOIE1);\n" >
        <timer overflow="65536" extrange="0" />
        <options>
          <prescale name="Prescaler Rate">
            <entry name="no clock" value ="TCCR1B &= 0xf8;\n" />
            <entry name="1:1" value ="TCCR1B &= 0xf8;\nTCCR1B |= 0x01;\n" />
            <entry name="1:8" value ="TCCR1B &= 0xf8;\nTCCR1B |= 0x02;\n" />
            <entry name="1:64" value ="TCCR1B &= 0xf8;\nTCCR1B |= 0x03;\n" />
            <entry name="1:256" value ="TCCR1B &= 0xf8;\nTCCR1B |= 0x04;\n" />
            <entry name="1:1024" value ="TCCR1B &= 0xf8;\nTCCR1B |= 0x05;\n" />
            <entry name="T0 pin, -ve edge" value ="TCCR1B &= 0xf8;\nTCCR1B |= 0x06;\n" />
            <entry name="T0 pin, +ve edge" value ="TCCR1B &= 0xf8;\nTCCR1B |= 0x07;\n" />
          </prescale>
        </options>
      </interrupt>

      <interrupt
          ident="TMR2"
          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 <TIMER2 OVF> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n'
          enable="TIMSK2 |= (1 << TOIE2);\n"
          disable="TIMSK2 &= ~(1 << TOIE2);\n" >
        <timer overflow="256" extrange="0" />
        <options>
          <prescale name="Prescaler Rate">
            <entry name="no clock" value ="TCCR2B &= 0xf8;\n" />
            <entry name="1:1" value ="TCCR2B &= 0xf8;\nTCCR2B |= 0x01;\n" />
            <entry name="1:8" value ="TCCR2B &= 0xf8;\nTCCR2B |= 0x02;\n" />
            <entry name="1:64" value ="TCCR2B &= 0xf8;\nTCCR2B |= 0x03;\n" />
            <entry name="1:256" value ="TCCR2B &= 0xf8;\nTCCR2B |= 0x04;\n" />
            <entry name="1:1024" value ="TCCR2B &= 0xf8;\nTCCR2B |= 0x05;\n" />
            <entry name="T0 pin, -ve edge" value ="TCCR2B &= 0xf8;\nTCCR2B |= 0x06;\n" />
            <entry name="T0 pin, +ve edge" value ="TCCR2B &= 0xf8;\nTCCR2B |= 0x07;\n" />
          </prescale>
        </options>
      </interrupt>

      <interrupt
          ident="TMR3"
          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 <TIMER3 OVF> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n'
          enable="TIMSK3 |= (1 << TOIE3);\n"
          disable="TIMSK3 &= ~(1 << TOIE3);\n" >
        <timer overflow="65536" extrange="0" />
        <options>
          <prescale name="Prescaler Rate">
            <entry name="no clock" value ="TCCR3B &= 0xf8;\n" />
            <entry name="1:1" value ="TCCR3B &= 0xf8;\nTCCR3B |= 0x01;\n" />
            <entry name="1:8" value ="TCCR3B &= 0xf8;\nTCCR3B |= 0x02;\n" />
            <entry name="1:64" value ="TCCR3B &= 0xf8;\nTCCR3B |= 0x03;\n" />
            <entry name="1:256" value ="TCCR3B &= 0xf8;\nTCCR3B |= 0x04;\n" />
            <entry name="1:1024" value ="TCCR3B &= 0xf8;\nTCCR3B |= 0x05;\n" />
            <entry name="T0 pin, -ve edge" value ="TCCR3B &= 0xf8;\nTCCR3B |= 0x06;\n" />
            <entry name="T0 pin, +ve edge" value ="TCCR3B &= 0xf8;\nTCCR3B |= 0x07;\n" />
          </prescale>
        </options>
      </interrupt>

      <interrupt
          ident="TMR4"
          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 <TIMER4 OVF> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n'
          enable="TIMSK4 |= (1 << TOIE4);\n"
          disable="TIMSK4 &= ~(1 << TOIE4);\n" >
        <timer overflow="65536" extrange="0" />
        <options>
          <prescale name="Prescaler Rate">
            <entry name="no clock" value ="TCCR4B &= 0xf8;\n" />
            <entry name="1:1" value ="TCCR4B &= 0xf8;\nTCCR4B |= 0x01;\n" />
            <entry name="1:8" value ="TCCR4B &= 0xf8;\nTCCR4B |= 0x02;\n" />
            <entry name="1:64" value ="TCCR4B &= 0xf8;\nTCCR4B |= 0x03;\n" />
            <entry name="1:256" value ="TCCR4B &= 0xf8;\nTCCR4B |= 0x04;\n" />
            <entry name="1:1024" value ="TCCR4B &= 0xf8;\nTCCR4B |= 0x05;\n" />
            <entry name="T0 pin, -ve edge" value ="TCCR4B &= 0xf8;\nTCCR4B |= 0x06;\n" />
            <entry name="T0 pin, +ve edge" value ="TCCR4B &= 0xf8;\nTCCR4B |= 0x07;\n" />
          </prescale>
        </options>
      </interrupt>

      <interrupt
          ident="TMR5"
          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 <TIMER5 OVF> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n'
          enable="TIMSK5 |= (1 << TOIE5);\n"
          disable="TIMSK5 &= ~(1 << TOIE5);\n" >
        <timer overflow="256" extrange="0" />
        <options>
          <prescale name="Prescaler Rate">
            <entry name="no clock" value ="TCCR5B &= 0xf8;\n" />
            <entry name="1:1" value ="TCCR5B &= 0xf8;\nTCCR5B |= 0x01;\n" />
            <entry name="1:8" value ="TCCR5B &= 0xf8;\nTCCR5B |= 0x02;\n" />
            <entry name="1:64" value ="TCCR5B &= 0xf8;\nTCCR5B |= 0x03;\n" />
            <entry name="1:256" value ="TCCR5B &= 0xf8;\nTCCR5B |= 0x04;\n" />
            <entry name="1:1024" value ="TCCR5B &= 0xf8;\nTCCR5B |= 0x05;\n" />
            <entry name="T0 pin, -ve edge" value ="TCCR5B &= 0xf8;\nTCCR5B |= 0x06;\n" />
            <entry name="T0 pin, +ve edge" value ="TCCR5B &= 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 & 0x7F) << 1);\nPCICR |= (1 &lt;&lt; PCIE1);\n' disable='PCICR &amp;= ~(1 &lt;&lt; PCIE1);\n' >
            <ioc config='0x0C' >
                <rising port='8' mask='0x7F' />
                <falling port='8' 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='9' mask='0xFF' />
                <falling port='9' 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 <INT0 Input> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="EIMSK |= (1 << INT0);\n"
          disable="EIMSK &= ~(1 << 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 << ISC01) | (1 << ISC00);\n" />
            <entry name="Falling edge of INT" value="EICRA |= (1 << ISC01);\nEICRA &= ~(1 << 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 <INT1 Input> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="EIMSK |= (1 << INT1);\n"
          disable="EIMSK &= ~(1 << 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 << ISC11) | (1 << ISC10);\n" />
            <entry name="Falling edge of INT" value="EICRA |= (1 << ISC11);\nEICRA &= ~(1 << 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 <INT2 Input> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="EIMSK |= (1 << INT2);\n"
          disable="EIMSK &= ~(1 << 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 << ISC21) | (1 << ISC20);\n" />
            <entry name="Falling edge of INT" value="EICRA |= (1 << ISC21);\nEICRA &= ~(1 << 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 <INT3 Input> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="EIMSK |= (1 << INT3);\n"
          disable="EIMSK &= ~(1 << 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 << ISC31) | (1 << ISC30);\n" />
            <entry name="Falling edge of INT" value="EICRA |= (1 << ISC31);\nEICRA &= ~(1 << 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 <INT4 Input> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="EIMSK |= (1 << INT4);\n"
          disable="EIMSK &= ~(1 << 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 << ISC41) | (1 << ISC40);\n" />
            <entry name="Falling edge of INT" value="EICRB |= (1 << ISC41);\nEICRB &= ~(1 << 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 <INT5 Input> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="EIMSK |= (1 << INT5);\n"
          disable="EIMSK &= ~(1 << 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 << ISC51) | (1 << ISC50);\n" />
            <entry name="Falling edge of INT" value="EICRB |= (1 << ISC51);\nEICRB &= ~(1 << 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 <INT6 Input> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="EIMSK |= (1 << INT6);\n"
          disable="EIMSK &= ~(1 << 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 << ISC61) | (1 << ISC60);\n" />
            <entry name="Falling edge of INT" value="EICRB |= (1 << ISC61);\nEICRB &= ~(1 << 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 <INT7 Input> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="EIMSK |= (1 << INT7);\n"
          disable="EIMSK &= ~(1 << 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 << ISC71) | (1 << ISC70);\n" />
            <entry name="Falling edge of INT" value="EICRB |= (1 << ISC71);\nEICRB &= ~(1 << 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 <UART0 RX> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="UCSR0B |= (1 << RXCIE0);\n"
          disable="UCSR0B &=  ~(1 << RXCIE0);\n" >
      </interrupt>

      <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 <UART1 RX> interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n"
          enable="UCSR1B |= (1 << RXCIE1);\n"
          disable="UCSR1B &=  ~(1 << RXCIE1);\n" >
      </interrupt>


    </interrupts>

  </device>

  <inline>

    <defines code="#define MX_UART_ID\n#define MX_UART_UCSRC\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <math.h>\n#include <avr\io.h>\n#include <avr\interrupt.h>\n#include <avr\eeprom.h>\n#include <avr\wdt.h>\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>

</fcd>
