[Device] Pins=40 Ports=4 ADCPins=8 ADCBits=10 ADCType=1 MaxClock=20000000 PrescalerBits=3 ClockDivider=1 TimerOverflow=256 ConfigAddress=0x0000 ConfigCount=2 PWMCount=2 UARTCount=1 EepromSize=1024 DefaultPackageType=0 FlowcodeProduct=AVR ChipName=atmega32 AltChipName=m32 FlashSize=32768 RamSize=2048 [ICD] ClockPort=1 ClockPin=6 DataPort=1 DataPin=7 [Pins] Pin1="(XCK/T0) PB0" Pin2="(T1) PB1" Pin3="(INT2/AIN0) PB2" Pin4="(OC0/AIN1) PB3" Pin5="(/SS) PB4" Pin6="(MOSI) PB5" Pin7="(MISO) PB6" Pin8="(SCK) PB7" Pin9="/RESET" Pin10="VCC" Pin11="GND" Pin12="XTAL2" Pin13="XTAL1" Pin14="(RXD) PD0" Pin15="(TXD) PD1" Pin16="(INT0) PD2" Pin17="(INT1) PD3" Pin18="(OC1B) PD4" Pin19="(OC1A) PD5" Pin20="(ICP1) PD6" Pin21="PD7 (OC2)" Pin22="PC0 (SCL)" Pin23="PC1 (SDA)" Pin24="PC2 (TCK)" Pin25="PC3 (TMS)" Pin26="PC4 (TD0)" Pin27="PC5 (TDI)" Pin28="PC6 (TOSC1)" Pin29="PC7 (TOSC2)" Pin30="AVCC" Pin31="GND" Pin32="AREF" Pin33="PA7 (ADC7)" Pin34="PA6 (ADC6)" Pin35="PA5 (ADC5)" Pin36="PA4 (ADC4)" Pin37="PA3 (ADC3)" Pin38="PA2 (ADC2)" Pin39="PA1 (ADC1)" Pin40="PA0 (ADC0)" [Ports] PortPin1=0x0100 PortPin2=0x0101 PortPin3=0x0102 PortPin4=0x0103 PortPin5=0x0104 PortPin6=0x0105 PortPin7=0x0106 PortPin8=0x0107 PortPin14=0x0300 PortPin15=0x0301 PortPin16=0x0302 PortPin17=0x0303 PortPin18=0x0304 PortPin19=0x0305 PortPin20=0x0306 PortPin21=0x0307 PortPin22=0x0200 PortPin23=0x0201 PortPin24=0x0202 PortPin25=0x0203 PortPin26=0x0204 PortPin27=0x0205 PortPin28=0x0206 PortPin29=0x0207 PortPin33=0x0007 PortPin34=0x0006 PortPin35=0x0005 PortPin36=0x0004 PortPin37=0x0003 PortPin38=0x0002 PortPin39=0x0001 PortPin40=0x0000 [PortMasks] PortMask0=0xFF PortMask1=0xFF PortMask2=0xFF PortMask3=0xFF [ADCPins] ADC0=40 ADC1=39 ADC2=38 ADC3=37 ADC4=36 ADC5=35 ADC6=34 ADC7=33 [Code] ;Substitute macros ;%c Clock Speed ;%o Operand ;%s Prescaler ;%p PortID ;%m MaskBits ;%i Inverse Mask ;%a ADC channel ;%a Config Address ;%v Config Value ;%r Interrupt Flag Register ;%b Interrupt Flag Bit ;%n Interrupt Macro Name Directives="#define F_CPU %cUL\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n" MainStart="int main()\n{\n" MainEnd="\tmainendloop: goto mainendloop;\n}\n\n" IntStart="" IntEnd="" Initialise="MCUCSR=0x00;\n\twdt_disable();\n" IntInit="" InputCmdFull="DDR%p = DDR%p & %i;\n%o = PIN%p;\n" InputCmdOneBit="DDR%p = DDR%p & %i;\n%o = ((PIN%p & %m) == %m);\n" InputCmdMask="DDR%p = DDR%p & %i;\n%o = PIN%p & %m;\n" OutputCmdFull="DDR%p = 0xFF;\nPORT%p = %o;\n" OutputCmdOneBit="DDR%p = DDR%p | %m;\nif (%o)\n\tPORT%p = (PORT%p & %i) | %m;\nelse\n\tPORT%p = PORT%p & %i;\n" OutputCmdMask="DDR%p = DDR%p | %m;\nPORT%p = (PORT%p & %i) | %o;\n" DelayCmdS="delay_s(%o);\n" DelayCmdMs="delay_ms(%o);\n" DelayCmdUs="delay_us(%o);\n" WdtDelayCmdS="Wdt_Delay_S(%o);\n" WdtDelayCmdMs="Wdt_Delay_Ms(%o);\n" InitialPortLetter="A" ConfigData="#pragma DATA %a, %v\n" IntHandler="" [Defines] Define1=#define MX_AVR Define2=#define MX_EE Define3=#define MX_EE_SIZE 1024 Define4=#define MX_SPI Define5=#define MX_SPI_B Define6=#define MX_SPI_SDI 6 Define7=#define MX_SPI_SDO 5 Define8=#define MX_SPI_SCK 7 Define9=#define MX_UART Define10=#define MX_UART_D Define11=#define MX_UART_TX 1 Define12=#define MX_UART_RX 0 Define13=#define MX_MI2C Define14=#define MX_I2C_C Define15=#define MX_I2C_SDA 1 Define16=#define MX_I2C_SCL 0 Define17=#define MX_PWM Define18=#define MX_PWM_PORT PORTD Define19=#define MX_PWM_CNT 2 Define20=#define MX_PWM_TRIS1 DDRD Define21=#define MX_PWM_1 5 Define22=#define MX_PWM_TRIS2 DDRD Define23=#define MX_PWM_2 4 Define24=#define MX_PWMTYPE 1 [Interrupts] GeneralInit="sei();\n" Count=5 1=TMR0 2=INT0 3=INT1 4=INT2 5=RXINT [TMR0] Name="TMR0 Overflow" UseExplicitHandlerCode=1 FlagReg= FlagBit= HandlerCode="#ifndef MX_TIMER0OVF_HANDLER\n#define MX_TIMER0OVF_HANDLER\nISR(TIMER0_OVF_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n" UseExplicitEnableCode=1 EnReg= EnBit= EnableCode="TIMSK |= (1 << TOIE0);\n" DisableCode="TIMSK &= ~(1 << TOIE0);\n" OptCnt=1 TmrOpt=1 MaxTimerOverflow=256 PrescaleOpt=1 Opt1="Clock Source & Prescaler Select" Opt1Cnt=8 Opt1_1="no clock" Opt1_1Val="TCCR0 &= 0xf8;\n" Opt1_2="1:1" Opt1_2Val="TCCR0 &= 0xf8;\nTCCR0 |= 0x01;\n" Opt1_3="1:8" Opt1_3Val="TCCR0 &= 0xf8;\nTCCR0 |= 0x02;\n" Opt1_4="1:64" Opt1_4Val="TCCR0 &= 0xf8;\nTCCR0 |= 0x03;\n" Opt1_5="1:256" Opt1_5Val="TCCR0 &= 0xf8;\nTCCR0 |= 0x04;\n" Opt1_6="1:1024" Opt1_6Val="TCCR0 &= 0xf8;\nTCCR0 |= 0x05;\n" Opt1_7="T0 pin, -ve edge" Opt1_7Val="TCCR0 &= 0xf8;\nTCCR0 |= 0x06;\n" Opt1_8="T0 pin, +ve edge" Opt1_8Val="TCCR0 &= 0xf8;\nTCCR0 |= 0x07;\n" [INT0] Name="INT0 Input" UseExplicitHandlerCode=1 FlagReg= FlagBit= HandlerCode="#ifndef MX_INTHANDLER_intcon_TMR0IF\n#define MX_INTHANDLER_intcon_TMR0IF\nif (ts_bit(intcon, TMR0IF) && ts_bit(intcon, TMR0IE))\n{\n\tICD_Ignore = 1;\n\tFCM_%n();\n\tcr_bit(intcon, TMR0IF);\n\tICD_Ignore = 0;\n}\n#else\n#warning "This interrupt has previously been enabled, so the macro <%n> may never get called."\n#endif\n" UseExplicitEnableCode=1 EnReg= EnBit= EnableCode="GICR |= (1 << INT0);\n" DisableCode="GICR &= ~(1 << INT0);\n" IntPort=3 IntPin=2 OptCnt=1 TmrOpt=0 Opt1="Interrupt Edge Select" Opt1Cnt=2 Opt1_1="rising edge of INT0" Opt1_1Val="MCUCR |= (1 << ISC01) | (1 << ISC00);\n" Opt1_2="falling edge of INT0" Opt1_2Val="MCUCR |= (1 << ISC01);\nMCUCR &= ~(1 << ISC00);\n" [INT1] Name="INT1 Input" UseExplicitHandlerCode=1 FlagReg= FlagBit= HandlerCode="#ifndef MX_INT1_HANDLER\n#define MX_INT1_HANDLER\nISR(INT1_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n" UseExplicitEnableCode=1 EnReg= EnBit= EnableCode="GICR |= (1 << INT1);\n" DisableCode="GICR &= ~(1 << INT1);\n" IntPort=3 IntPin=3 OptCnt=1 TmrOpt=0 Opt1="Interrupt Edge Select" Opt1Cnt=2 Opt1_1="rising edge of INT1" Opt1_1Val="MCUCR |= (1 << ISC11) | (1 << ISC10);\n" Opt1_2="falling edge of INT1" Opt1_2Val="MCUCR |= (1 << ISC11);\nMCUCR &= ~(1 << ISC10);\n" [INT2] Name="INT2 Input" UseExplicitHandlerCode=1 FlagReg= FlagBit= HandlerCode="#ifndef MX_INT2_HANDLER\n#define MX_INT2_HANDLER\nISR(INT2_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n" UseExplicitEnableCode=1 EnReg= EnBit= EnableCode="GICR |= (1 << INT2);\n" DisableCode="GICR &= ~(1 << INT2);\n" IntPort=1 IntPin=2 OptCnt=1 TmrOpt=0 Opt1="Interrupt Edge Select" Opt1Cnt=2 Opt1_1="rising edge of INT2" Opt1_1Val="MCUCSR |= (1 << ISC2);\n" Opt1_2="falling edge of INT2" Opt1_2Val="MCUCSR &= ~(1 << ISC2);\n" [RXINT] Name="UART RX" UseExplicitHandlerCode=1 FlagReg= FlagBit= HandlerCode="#ifndef MX_UART0_RX_HANDLER\n#define MX_UART0_RX_HANDLER\nISR(USART_RXC_vect)\n{\n\tFCM_%n();\n}\n#else\n#warning The interrupt has previously been enabled, so the macro <%n> may never get called.\n#endif\n" UseExplicitEnableCode=1 EnReg= EnBit= EnableCode="UCSRB |= (1 << RXCIE);\n" DisableCode="UCSRB &= ~(1 << RXCIE);\n" OptCnt=0 TmrOpt=0