Beispiel #1
0
void init_motors()
{
	
	//setup reset line
	SET_DDR_PIN_OUTPUT(DDRB, PIN0);
	//set motor output pins
	DDRB |= (1<<PINB1)|(1<<PINB2);
	DDRD |= (1<<PIND5)|(1<<PIND6);
		
	configure_motor(&(motors[0]),0,PORTB,PINB1,M1_IDLE_SPEED, M1_OFFSET);
	configure_motor(&(motors[1]),1,PORTB,PINB2,M2_IDLE_SPEED, M2_OFFSET);
	configure_motor(&(motors[2]),2,PORTD,PIND5,M3_IDLE_SPEED, M3_OFFSET);
	configure_motor(&(motors[3]),3,PORTD,PIND6,M4_IDLE_SPEED, M4_OFFSET);
		
	initPWM();	
		
	calibrate_motors();	
		//reset motors
	//MOTORS_OFF;
	
	//Reset the RC pulse to zero to simulate throttle low position
	/*for(int i = 0; i < nMOTORS; i++) {
		//writeVelocity(0,&(motors[i]));
		writePWMduty(0,&(motors[i]));
	}*/
	//writePWMduty(0,&(motors[1]));
	//_delay_ms(50);
	//MOTORS_ON;
	
	
}
Beispiel #2
0
u8 setup_motor (u8 motor){
	u8 flag=1;
	switch (motor){
		case 1:
			configure_motor(MOTOR_1_PORT, MOTOR_1_PIN, MOTOR_1_TIMER, MOTOR_1_CHANNEL);
		break;

		case 2:
			configure_motor(MOTOR_2_PORT, MOTOR_2_PIN, MOTOR_2_TIMER, MOTOR_2_CHANNEL);			
		break;

		case 3:
			configure_motor(MOTOR_3_PORT, MOTOR_3_PIN, MOTOR_3_TIMER, MOTOR_3_CHANNEL);
		break;		
		
		case 4:
			configure_motor(MOTOR_4_PORT, MOTOR_4_PIN, MOTOR_4_TIMER, MOTOR_4_CHANNEL);
		break;
		
		default:
			flag=0;
		break;
	}
	return flag;
}
Beispiel #3
0
void setup_all_motors (void){
	configure_motor(MOTOR_1_PORT, MOTOR_1_PIN, MOTOR_1_TIMER, MOTOR_1_CHANNEL);
	configure_motor(MOTOR_2_PORT, MOTOR_2_PIN, MOTOR_2_TIMER, MOTOR_2_CHANNEL);			
	configure_motor(MOTOR_3_PORT, MOTOR_3_PIN, MOTOR_3_TIMER, MOTOR_3_CHANNEL);
	configure_motor(MOTOR_4_PORT, MOTOR_4_PIN, MOTOR_4_TIMER, MOTOR_4_CHANNEL);
}