[Device] Pins=8 Ports=1 ADCPins=4 ADCBits=10 MaxClock=20000000 PrescalerBits=3 ClockDivider=4 ConfigAddress=0x2007 ConfigCount=1 PortBits=8 PWMCount=1 UARTCount=0 SPICount=0 I2CCount=0 CANCount=0 ComparatorCount=1 TimerCount8=2 TimerCount16=1 EepromSize=256 HasAltPWM=0 FlowcodeProduct=PIC UsesGpio=1 DefaultPackageType=0 FlashSize=3584 RamSize=128 [ICD] ClockPort=0 ClockPin=1 DataPort=0 DataPin=0 [Pins] Pin1 = "VDD" Pin2 = "GP5/OSC1" Pin3 = "GP4/OSC2/AN3" Pin4 = "GP3/MCLR/VPP" Pin5 = "GP2/AN2" Pin6 = "GP1/AN1" Pin7 = "GP0/AN0" Pin8 = "VSS" [Ports] PortPin7=0x0000 PortPin6=0x0001 PortPin5=0x0002 PortPin4=0x0003 PortPin3=0x0004 PortPin2=0x0005 [PortMasks] ;Only bits 0-5 available on port A PortMask0=0x3F [ADCPins] ADC0=7 ADC1=6 ADC2=5 ADC3=3 [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 MX_CLK_SPEED %c\n#ifdef _BOOSTC\n#include \n#endif\n#ifdef HI_TECH_C\n#include \n#endif\n" MainStart="\nvoid main()\n{\n" MainEnd="\tmainendloop: goto mainendloop;\n}\n\n" IntStart="void MX_INTERRUPT_MACRO(void)\n{\n" IntEnd="}\n\n" Initialise="ansel = 0x00;\ncmcon0 = 0x07;\n" IntInit="option_reg = 0xC0;\n\n" InputCmdFull="trisio = trisio | %m;\n%o = gpio;\n" InputCmdOneBit="trisio = trisio | %m;\n%o = ((gpio & %m) == %m);\n" InputCmdMask="trisio = trisio | %m;\n%o = gpio & %m;\n" OutputCmdFull="trisio = 0x00;\ngpio = %o;\n" OutputCmdOneBit="trisio = trisio & %i;\nif (%o)\n\tgpio = (gpio & %i) | %m;\nelse\n\tgpio = gpio & %i;\n" OutputCmdMask="trisio = trisio & %i;\ngpio = (gpio & %i) | (%o & %m);\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="#ifdef _BOOSTC\n#pragma DATA %a, %v\n#endif\n#ifdef HI_TECH_C\n__CONFIG(%v);\n#endif\n" IntHandler="#ifndef MX_INTHANDLER_%r_%b\n#define MX_INTHANDLER_%r_%b\nif (ts_bit(%r, %b))\n{\n\tFCM_%n();\n\tcr_bit(%r, %b);\n}\n#else\n#warning "This interrupt has previously been enabled, so the macro <%n> may never get called."\n#endif" [Defines] Define1=#define P12F683 Define2=#define FC_CAL_PIC Define3=#define FC_USEGPIO Define4=#define MX_ADC Define5=#define MX_ADC_TYPE_5 Define6=#define MX_ADC_BITS_10 Define7=#define MX_EE Define8=#define MX_EE_SIZE 256 Define9=#define MX_PWM Define10=#define MX_PWM_CNT 1 Define11=#define MX_PWM_PSCA1 Define12=#define MX_PWM_PSCA4 Define13=#define MX_PWM_PSCA16 Define14=#define MX_PWM_1_PORT porta Define15=#define MX_PWM_1_TRIS trisa Define16=#define MX_PWM_1_PIN 2 [Interrupts] ;first 3 should always be 1=TMR0, 2=RB0INT, 3=PORTB ;any other interrupts need to also have this set: "st_bit(intcon,PEIE);\n" GeneralInit="st_bit(intcon,GIE);\n" Count=3 1=TMR0 3=PORTGPIO 2=GP2INT [TMR0] Name="TMR0" HandlerCode="#ifndef MX_INTHANDLER_intcon_T0IF\n#define MX_INTHANDLER_intcon_T0IF\nif (ts_bit(intcon, T0IF) && ts_bit(intcon, T0IE))\n{\n\t#ifdef USE_FLOWCODE_ICD\n\t\textern char ICD_Interrupt_Enable = 1;\n\t#endif\t\n\tFCM_%n();\n\tcr_bit(intcon, T0IF);\n\t#ifdef USE_FLOWCODE_ICD\n\t\textern char ICD_Interrupt_Enable = 0;\n\t#endif\t\n}\n#else\n#warning "This interrupt has previously been enabled, so the macro <%n> may never get called."\n#endif\n" EnableCode="st_bit(intcon, T0IE);\n" DisableCode="cr_bit(intcon, T0IE);\n" OptCnt=3 PrescaleOpt=3 MaxTimerOverflow=256 Opt1="Clock Source Select" Opt1Cnt=2 Opt1_1="Transition on T0CKI pin" Opt1_1Val="st_bit(option_reg,T0CS);\n" Opt1_2="Internal clock (CLKO)" Opt1_2Val="cr_bit(option_reg,T0CS);\n" Opt2="Source Edge Select" Opt2Cnt=2 Opt2_1="high-to-low transition on TMR0 Clock" Opt2_1Val="st_bit(option_reg,T0SE);\n" Opt2_2="low-to-high transition on TMR0 Clock" Opt2_2Val="cr_bit(option_reg,T0SE);\n" Opt3="Prescaler Rate" Opt3Cnt=9 Opt3_1="1:1" Opt3_1Val="option_reg = (option_reg & 0xF0) | 0x08;\n" Opt3_2="1:2" Opt3_2Val="option_reg = (option_reg & 0xF0) | 0x00;\n" Opt3_3="1:4" Opt3_3Val="option_reg = (option_reg & 0xF0) | 0x01;\n" Opt3_4="1:8" Opt3_4Val="option_reg = (option_reg & 0xF0) | 0x02;\n" Opt3_5="1:16" Opt3_5Val="option_reg = (option_reg & 0xF0) | 0x03;\n" Opt3_6="1:32" Opt3_6Val="option_reg = (option_reg & 0xF0) | 0x04;\n" Opt3_7="1:64" Opt3_7Val="option_reg = (option_reg & 0xF0) | 0x05;\n" Opt3_8="1:128" Opt3_8Val="option_reg = (option_reg & 0xF0) | 0x06;\n" Opt3_9="1:256" Opt3_9Val="option_reg = (option_reg & 0xF0) | 0x07;\n" [PORTGPIO] Name="PORT" REMask=0x3F FEMask=0x3F ConfOpt=0x0C HandlerCode="#ifndef MX_INTHANDLER_intcon_GPIF\n#define MX_INTHANDLER_intcon_GPIF\nchar mxtmp;\nif (ts_bit(intcon, GPIF) && ts_bit(intcon, GPIE))\n{\n\t#ifdef USE_FLOWCODE_ICD\n\t\textern char ICD_Interrupt_Enable = 1;\n\t#endif\t\n\tFCM_%n();\n\tmxtmp=gpio;\n\tcr_bit(intcon, GPIF);\n\t#ifdef USE_FLOWCODE_ICD\n\t\textern char ICD_Interrupt_Enable = 0;\n\t#endif\t\n}\n#else\n#warning "This interrupt has previously been enabled, so the macro <%n> may never get called."\n#endif\n" EnableCode="ioc=%pA0v;\nst_bit(intcon, GPIE);\n" DisableCode="cr_bit(intcon, GPIE);\n" OptCnt=0 [GP2INT] Name="INT" REMask=0x04 FEMask=0x04 ConfOpt=0x03 EdgeOpt=0x01 HandlerCode="#ifndef MX_INTHANDLER_intcon_INTF\n#define MX_INTHANDLER_intcon_INTF\nif (ts_bit(intcon, INTF) && ts_bit(intcon, INTE))\n{\n\t#ifdef USE_FLOWCODE_ICD\n\t\textern char ICD_Interrupt_Enable = 1;\n\t#endif\t\n\tFCM_%n();\n\tcr_bit(intcon, INTF);\n\t#ifdef USE_FLOWCODE_ICD\n\t\textern char ICD_Interrupt_Enable = 0;\n\t#endif\t\n}\n#else\n#warning "This interrupt has previously been enabled, so the macro <%n> may never get called."\n#endif\n" EnableCode="st_bit(intcon, INTE);\n" DisableCode="cr_bit(intcon, INTE);\n" OptCnt=1 Opt1="Interrupt Edge Select" Opt1Cnt=2 Opt1_1="rising edge of INT" Opt1_1Val="st_bit(option_reg,INTEDG);\n" Opt1_2="falling edge of INT" Opt1_2Val="cr_bit(option_reg,INTEDG);\n"