Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
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;
	}