|  |  |  | @ -317,7 +317,7 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out,CMD_t *c) | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 			if(u->DribbleContext.DribbleState== DRIBBLE_PREPARE){ | 
		
	
		
			
				|  |  |  |  | 				u->DribbleContext .DribbleState=DRIBBLE_TRANSLATE;			 | 
		
	
		
			
				|  |  |  |  | 				u->DribbleContext .DribbleState=DRIBBLE_PROCESS_DOWN;			 | 
		
	
		
			
				|  |  |  |  | 			} | 
		
	
		
			
				|  |  |  |  | 			//光电状态更新
 | 
		
	
		
			
				|  |  |  |  | 			 Dribble_Process(u,out); | 
		
	
	
		
			
				
					
					|  |  |  | @ -444,8 +444,8 @@ int8_t Dribble_Process(UP_t *u, CAN_Output_t *out) | 
		
	
		
			
				|  |  |  |  | 		case DRIBBLE_PROCESS_DOWN: | 
		
	
		
			
				|  |  |  |  | 			 | 
		
	
		
			
				|  |  |  |  | 			u->motor_target.Dribble_M3508_speed[0]=u->DribbleContext .DribbleConfig.m3508_dribble_speed; | 
		
	
		
			
				|  |  |  |  | 			u->motor_target.Dribble_M3508_speed[1]=-u->DribbleContext .DribbleConfig.m3508_dribble_speed; | 
		
	
		
			
				|  |  |  |  | 			u->motor_target.Dribble_M3508_speed[2]=-u->DribbleContext .DribbleConfig.m3508_dribble_speed; | 
		
	
		
			
				|  |  |  |  | 			u->motor_target.Dribble_M3508_speed[1]=u->DribbleContext .DribbleConfig.m3508_dribble_speed; | 
		
	
		
			
				|  |  |  |  | 			u->motor_target.Dribble_M3508_speed[2]=u->DribbleContext .DribbleConfig.m3508_dribble_speed; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 		  if(is_reached_multiple(u->motorfeedback .DJmotor_feedback [0].rpm, | 
		
	
		
			
				|  |  |  |  | 				u->motorfeedback .DJmotor_feedback [1].rpm, | 
		
	
	
		
			
				
					
					|  |  |  | @ -461,8 +461,8 @@ int8_t Dribble_Process(UP_t *u, CAN_Output_t *out) | 
		
	
		
			
				|  |  |  |  | 			if(common_speed_flag){ | 
		
	
		
			
				|  |  |  |  | 				if(u->DribbleContext .DribbleConfig .light_ball_flag == 0){//球下落检测,反转
 | 
		
	
		
			
				|  |  |  |  | 				u->motor_target.Dribble_M3508_speed[0]=u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; | 
		
	
		
			
				|  |  |  |  | 				u->motor_target.Dribble_M3508_speed[1]=-u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; | 
		
	
		
			
				|  |  |  |  | 				u->motor_target.Dribble_M3508_speed[2]=-u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; | 
		
	
		
			
				|  |  |  |  | 				u->motor_target.Dribble_M3508_speed[1]=u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; | 
		
	
		
			
				|  |  |  |  | 				u->motor_target.Dribble_M3508_speed[2]=u->DribbleContext .DribbleConfig.m3508_dribble_Reverse_speed; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 			  u->DribbleContext .DribbleState=DRIBBLE_PROCESS_UP; | 
		
	
		
			
				|  |  |  |  | 				} | 
		
	
	
		
			
				
					
					|  |  |  | @ -475,8 +475,8 @@ int8_t Dribble_Process(UP_t *u, CAN_Output_t *out) | 
		
	
		
			
				|  |  |  |  | 							  common_speed_flag =0; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 			  if((u->motorfeedback .DJmotor_feedback [0].rpm<-2000)&&			 | 
		
	
		
			
				|  |  |  |  | 			     (u->motorfeedback .DJmotor_feedback [1].rpm>2000)&& | 
		
	
		
			
				|  |  |  |  | 			     (u->motorfeedback .DJmotor_feedback [2].rpm>2000)  | 
		
	
		
			
				|  |  |  |  | 			     (u->motorfeedback .DJmotor_feedback [1].rpm>-2000)&& | 
		
	
		
			
				|  |  |  |  | 			     (u->motorfeedback .DJmotor_feedback [2].rpm>-2000)  | 
		
	
		
			
				|  |  |  |  | 			   ){ | 
		
	
		
			
				|  |  |  |  | 		 | 
		
	
		
			
				|  |  |  |  | 				   if(u->DribbleContext .DribbleConfig .light_ball_flag == 1){ | 
		
	
	
		
			
				
					
					|  |  |  | 
 |