int main (void) { primitives(); CPU_PRESCALE(0); usb_init(); while (!usb_configured()) /* wait */ ; define_constant("portb", (int)&PORTB); define_constant("portd", (int)&PORTD); define_constant("portf", (int)&PORTF); define_constant("ddrb", (int)&DDRB); define_constant("ddrd", (int)&DDRD); define_constant("ddrf", (int)&DDRF); define_constant("pinb", (int)&PINB); define_constant("pind", (int)&PIND); define_constant("pinf", (int)&PINF); define("pressedkeys", VARIABLE, keyboard_keys); define("pressedmodifiers", VARIABLE, &keyboard_modifier_keys); define("reset", PRIMITIVE, &reset); define("blink", PRIMITIVE, &blink); define("blinks", PRIMITIVE, &blinks); define("blinq", PRIMITIVE, &blinq); define("delaysec", PRIMITIVE, &delaysec); define("delay", PRIMITIVE, &delay); define("delayten", PRIMITIVE, &delayten); define("usbsend", PRIMITIVE, &usbsend); define_constant("onboard", 1); delaysec(); input = malloc(81); #include "inlined.c" delaysec(); (DDRD |= (1<<6)); blinq(); blinq(); blinq(); reset(); };
int main(void) { // initalize global variables start = 0; delay1 = 5; delay2 = 10; delay3 = 3; timesec = 0; startupPIC(); initalizePIC(); setup_counters(); initAnalogInput(); initMagnets(); while(1) { if(start) { EMAG2=0; SetDCOC4PWM(100); delaysec(delay1); SetDCOC4PWM(1000); delaysec(delay2); SetDCOC4PWM(500); delaysec(delay3); EMAG2=1; SetDCOC4PWM(0); // EMAG1=0; // SetDCOC4PWM(900); // DIR = 0; // delaysec(delay1); // SetDCOC4PWM(0); // delaysec(delay2); // SetDCOC4PWM(700); // delaysec(delay1); // SetDCOC4PWM(1000); // EMAG1=1; start=0; } } }
int main(void) { timesec=0; // set PIC32 to max computing power SYSTEMConfig(SYS_FREQ, SYS_CFG_ALL); INTConfigureSystem(INT_SYSTEM_CONFIG_MULT_VECTOR); INTEnableSystemMultiVectoredInt(); initLEDs(); LED0 = 1; LED1 = 1; initSerialNU32v2(); setup_counters(); CloseADC10(); #define PARAM1 ADC_MODULE_ON | ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON #define PARAM2 ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_ON | ADC_SAMPLES_PER_INT_16 | ADC_ALT_BUF_OFF | ADC_ALT_INPUT_OFF #define PARAM3 ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_31 #define PARAM4 ENABLE_AN0_ANA | ENABLE_AN1_ANA | ENABLE_AN2_ANA | ENABLE_AN3_ANA | ENABLE_AN5_ANA | ENABLE_AN15_ANA OpenADC10( PARAM1, PARAM2, PARAM3, PARAM4,0); EnableADC10(); // Setup and turn off electromagnets EMAG1 = 0; EMAG2 = 0; TRISEbits.TRISE7 = 0; TRISCbits.TRISC1 = 0; //Direction Output DIR = 1; TRISAbits.TRISA9 = 0; //g-select Outputs GSEL1 = 0; GSEL2 = 0; TRISEbits.TRISE2 = 0; TRISCbits.TRISC13= 0; //0g Inputs TRISAbits.TRISA0 = 1; TRISAbits.TRISA4 = 1; // 20kHz PWM signal, duty from 0-1000, pin D3 OpenTimer2(T2_ON | T2_PS_1_4, 1000); OpenOC4(OC_ON | OC_TIMER2_SRC | OC_PWM_FAULT_PIN_DISABLE, 0, 0); HBridgeDuty = 0; SetDCOC4PWM(HBridgeDuty); // 20Hz ISR OpenTimer3(T3_ON | T3_PS_1_256, 15625); mT3SetIntPriority(1); mT3ClearIntFlag(); mT3IntEnable(1); while(1) { if(start){ EMAG2=0; SetDCOC4PWM(100); delaysec(delay1); SetDCOC4PWM(1000); delaysec(delay2); SetDCOC4PWM(500); delaysec(delay3); EMAG2=1; SetDCOC4PWM(0); // EMAG1=0; // SetDCOC4PWM(900); // DIR = 0; // delaysec(delay1); // SetDCOC4PWM(0); // delaysec(delay2); // SetDCOC4PWM(700); // delaysec(delay1); // SetDCOC4PWM(1000); // EMAG1=1; start=0; } } }
void blinks(void) { (PORTD |= (1<<6)); delaysec(); (PORTD &= ~(1<<6)); delaysec(); };