int main(void) { InitializeSystem(); // Wait for reset button to be released while (_PORT(PIO_BTN1) == HIGH) { } //ADCInitialize(); PWMInitialize(); PWMEnable(); USBDeviceInit(); //ADCStartCapture(); _LAT(PIO_LED1) = HIGH; ColourEngine::Initialize(); //ColourEngine::PowerOn(1000); // Fade in ColourEngine::SetPower(power, 0); //_LAT(PIO_LED2) = HIGH; while (1) { USBDeviceTasks(); USBUserProcess(); } return 0; }
int main(void) { char value[8]; Forward_Backward_State; // Set the directional pins TRIS_MOTOR_C = 0; // RB2 TRIS_MOTOR_D = 0; // RB3 LAT_MOTOR_C = 1; // idle mode LAT_MOTOR_D = 1; // idle mode // Motor related variables int duty_cycle1 = 0; int duty_cycle2 = 0; // Configure Change notification of RB5 (SW1 momentary switch) TRISBbits.TRISB5 = 1; CNPU2bits.CN27PUE=1; CNEN2bits.CN27IE=1; IFS1bits.CNIF=0; IEC1bits.CNIE=1; // Initialize LCD LCDInitialize(); // Configure PWM PWMInitialize(); // Configure A/D unit ADCInitialize(); while(1) { if(done) { sprintf(value, "%6d", ADC_value); LCDMoveCursor(0,0); LCDPrintString(value); if((ADC_value > 462 || ADC_value == 462) && (ADC_value <562 || ADC_value == 562)) { duty_cycle1 = 100; duty_cycle2 = 100; } else if((ADC_value > 563 || ADC_value == 563) && (ADC_value <690 || ADC_value == 690)) { duty_cycle1 = 75; duty_cycle2 = 100; } else if((ADC_value > 691 || ADC_value == 691) && (ADC_value <818 || ADC_value == 818)) { duty_cycle1 = 50; duty_cycle2 = 100; } else if((ADC_value > 819 || ADC_value == 819) && (ADC_value <975 || ADC_value == 975)) { duty_cycle1 = 25; duty_cycle2 = 100; } else if (ADC_value > 975) { duty_cycle1 = 0; duty_cycle2 = 100; } else if((ADC_value < 461 || ADC_value == 461) && (ADC_value >334 || ADC_value == 334)) { duty_cycle1 = 100; duty_cycle2 = 75; } else if((ADC_value < 333 || ADC_value == 333) && (ADC_value >206 || ADC_value == 206)) { duty_cycle1 = 100; duty_cycle2 = 50; } else if((ADC_value < 205 || ADC_value == 205) && (ADC_value >40 || ADC_value == 40)) { duty_cycle1 = 100; duty_cycle2 = 25; } else if (ADC_value < 40) { duty_cycle1 = 100; duty_cycle2 = 0; } OC1RS = (int)(PR_VALUE*duty_cycle1); //modifying PWM duty cycle OC1RS = OC1RS / 100; OC2RS = (int)(PR_VALUE*duty_cycle2); //modifying PWM duty cycle OC2RS = OC2RS / 100; sprintf(value, "%3d", duty_cycle1); LCDMoveCursor(1,0); LCDPrintString(value); sprintf(value, "%3d", duty_cycle2); LCDMoveCursor(1,5); LCDPrintString(value); done = 0; } } return 0; }