예제 #1
0
void Car_Test(void){
  Car_forward(1000);
  Delay(10000);

  Car_Stop(1000);
  Delay(10000);

  Car_Backward(1000);
  Delay(10000);

  Car_Stop(1000);
  Delay(10000);
}
예제 #2
0
파일: bsp_motor.c 프로젝트: fangchuan/AR_2
/*********************************************************************************************************
*	函 数 名: CAR_Config
*	功能说明: 小车配置函数
*	形    参:小车结构体指针
*	返 回 值: 
*********************************************************************************************************
*/
_Error  CAR_Config(_Car *car)
{
	     if(!car->direction)
				 return ERROR_DIR;
			 
			 
			 switch(car->direction )
			 {
				 case FORWARD:
								 MOTOR_11_OUT += car->speed_step ;
								 MOTOR_12_OUT  = DEFAULT_MIN;
								 MOTOR_21_OUT += car->speed_step ;
							   MOTOR_22_OUT  = DEFAULT_MIN;
								//constrain pwm out 
				         if(MOTOR_11_OUT > DEFAULT_MAX)
									  MOTOR_11_OUT = DEFAULT_MAX;
								 if(MOTOR_11_OUT < DEFAULT_MIN)
									  MOTOR_11_OUT = DEFAULT_MIN;
								 
								 if(MOTOR_21_OUT > DEFAULT_MAX)
									  MOTOR_21_OUT = DEFAULT_MAX;
								 if(MOTOR_21_OUT < DEFAULT_MIN)
									  MOTOR_21_OUT = DEFAULT_MIN;
					 break;
				 case BACKWARD:
					       MOTOR_11_OUT = DEFAULT_MIN;
								 MOTOR_12_OUT += car->speed_step ;
								 MOTOR_21_OUT = DEFAULT_MIN;
								 MOTOR_22_OUT += car->speed_step ;
								 //constrain pwm out 
				 				 if(MOTOR_12_OUT > DEFAULT_MAX)
									  MOTOR_12_OUT = DEFAULT_MAX;
								 if(MOTOR_12_OUT < DEFAULT_MIN)
									  MOTOR_12_OUT = DEFAULT_MIN;
								 
								 if(MOTOR_22_OUT > DEFAULT_MAX)
									  MOTOR_22_OUT = DEFAULT_MAX;
								 if(MOTOR_22_OUT < DEFAULT_MIN)
									  MOTOR_22_OUT = DEFAULT_MIN;
					 break;
				 case LEFT:
								 MOTOR_11_OUT = DEFAULT_MIN;
								 MOTOR_12_OUT = DEFAULT_AVR ;
				         MOTOR_21_OUT += car->speed_step ;
								 MOTOR_22_OUT = 0;
								 //constrain pwm out 
				 				 if(MOTOR_21_OUT > DEFAULT_MAX)
									  MOTOR_21_OUT = DEFAULT_MAX;
								 if(MOTOR_21_OUT < DEFAULT_MIN)
									  MOTOR_21_OUT = DEFAULT_MIN;
					 break;
				 case RIGHT:
								 MOTOR_11_OUT += car->speed_step;
								 MOTOR_12_OUT =  0;
								 MOTOR_21_OUT = DEFAULT_MIN;
								 MOTOR_22_OUT = DEFAULT_AVR ;
								 //constrain pwm out 
				 				 if(MOTOR_11_OUT > DEFAULT_MAX)
									  MOTOR_11_OUT = DEFAULT_MAX;
								 if(MOTOR_11_OUT < DEFAULT_MIN)
									  MOTOR_11_OUT = DEFAULT_MIN;
					 break;
				 case STOP :
					    Car_Stop();
							car->speed_step = 0;           // 小车停止时是不允许加减速的
					 break;
			 }
//			 if(MOTOR_11_OUT > DEFAULT_MAX)
//				  MOTOR_11_OUT = DEFAULT_MAX;
//			 if(MOTOR_11_OUT < DEFAULT_MIN)
//				  MOTOR_11_OUT = DEFAULT_MIN;
//			 
//			 if(MOTOR_12_OUT > DEFAULT_MAX)
//				  MOTOR_12_OUT = DEFAULT_MAX;
//			 if(MOTOR_12_OUT < DEFAULT_MIN)
//				  MOTOR_12_OUT = DEFAULT_MIN;
//			 
//			 if(MOTOR_21_OUT > DEFAULT_MAX)
//				  MOTOR_21_OUT = DEFAULT_MAX;
//			 if(MOTOR_21_OUT < DEFAULT_MIN)
//				  MOTOR_21_OUT = DEFAULT_MIN;
//			 
//			 if(MOTOR_22_OUT > DEFAULT_MAX)
//				  MOTOR_22_OUT = DEFAULT_MAX;
//			 if(MOTOR_22_OUT < DEFAULT_MIN)
//				  MOTOR_22_OUT = DEFAULT_MIN;
			 
			 return NO_ERROR;
}