From 08b3909c40a192778719c6262bbee4745682948d Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 31 May 2024 19:15:47 +0800
Subject: [PATCH] 测试和修改了一些功能bug

---
 Function/VALVE/valve_control.c |   62 ++++++++++++++++++++-----------
 1 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/Function/VALVE/valve_control.c b/Function/VALVE/valve_control.c
index e1bb80c..c18bc1c 100644
--- a/Function/VALVE/valve_control.c
+++ b/Function/VALVE/valve_control.c
@@ -54,8 +54,6 @@
 	Motor_OP_CL_GPIO_Init();
 	Motor_A_HIGH;
 	Motor_B_LOW;
-	GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE);
-	GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE);
 }
 
 void ValveMotorCloseRun(void)
@@ -74,8 +72,6 @@
 	Motor_OP_CL_GPIO_Init();
 	Motor_A_LOW;
 	Motor_B_HIGH;
-	GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE);
-	GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE);
 }
 
 void ValveMotorStop(void)
@@ -159,7 +155,19 @@
 
 void ValveCtrlHade(CALIBER_TYPE caliber_type_l,FUN_START_CTRL_PARA_T * sys_fun_run_ctrl_p)
 {
-	if(valve_ctrl_para_g.valve_ctrl_order == VC_OPEN){
+	
+	if(valve_ctrl_para_g.force_open_status ==SET){
+		//ǿ�����ȼ��ߣ���⵽ǿ����ִ�з��ſ���,�ر��жϼ�⡣  ��ⷧ��״̬���������λ��״̬���Ϊ��������״̬Ϊ������
+		GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, DISABLE);
+		if(Read_OP_CL_VALVE_Status(0) !=VALVE_OPEN){
+			save_valve_para_g.valve_status = VALVE_OPENING;
+			ValveMotorStop();		
+		}else{
+			save_valve_para_g.valve_status = VALVE_OPEN;
+		}
+		
+		return ;  //ǿ���ź���Чʱ��ֱ���������������жϺ����߼�
+	}else if(valve_ctrl_para_g.valve_ctrl_order == VC_OPEN){
 		if(Read_OP_CL_VALVE_Status(0) == VALVE_OPEN){
 			ValveMotorStop();
 			save_valve_para_g.valve_status = VALVE_OPEN;
@@ -176,6 +184,8 @@
 
 				save_valve_para_g.valve_status = VALVE_OPENING;
 				valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
+				delay_ms(10);  //�Ӻ���ն�
+				GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE);
 			}
 		}
 	}else if(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE){
@@ -195,15 +205,20 @@
 
 				save_valve_para_g.valve_status = VALVE_CLOSING;
 				valve_ctrl_para_g.valve_ctrl_order = VC_NONE;	
+				delay_ms(10);  //�Ӻ���ն�
+				GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE);
 			}
 		}
-	}else if(valve_ctrl_para_g.valve_ctrl_order == VC_LOCK){
-		save_valve_para_g.valve_lock_state = VL_LOCK;	
+	}else{
+
 	}
 	
 	//?�жϿ��ط��Ƿ�λ
 	if(save_valve_para_g.valve_status==VALVE_OPENING){
-		if(valve_ctrl_para_g.open_time_cnt==0){
+		if(Read_OP_CL_VALVE_Status(0) ==VALVE_OPEN){
+			ValveMotorStop();//�ر�����
+			save_valve_para_g.valve_status = VALVE_OPEN;
+		}else if(valve_ctrl_para_g.open_time_cnt==0){
 			//?��ʱ����
 			ValveMotorStop();
 			save_valve_para_g.valve_status = VALVE_ERROR;
@@ -212,12 +227,15 @@
 			valve_ctrl_para_g.open_time_cnt--;
 		}
 		
-		if(valve_ctrl_para_g.force_open_status ==SET){
-			//��������������ǿ�����ر�����
-			ValveMotorStop();
-		}
+//		if(valve_ctrl_para_g.force_open_status ==SET){
+//			//��������������ǿ�����ر�����
+//			ValveMotorStop();
+//		}
 	}else if(save_valve_para_g.valve_status==VALVE_CLOSING){
-		if(valve_ctrl_para_g.close_time_cnt==0){
+		if(Read_OP_CL_VALVE_Status(0) ==VALVE_CLOSE){
+			ValveMotorStop();//�ر�����
+			save_valve_para_g.valve_status = VALVE_CLOSE;
+		}else if(valve_ctrl_para_g.close_time_cnt==0){
 			//?��ʱ����
 			ValveMotorStop();
 			save_valve_para_g.valve_status = VALVE_ERROR;
@@ -226,15 +244,15 @@
 			valve_ctrl_para_g.close_time_cnt--;
 		}
 		
-		if(valve_ctrl_para_g.force_open_status ==SET){
-			//�ط�����������ǿ�����ر�������״̬�ı�ɿ����У����ÿ�����ʱ
-			ValveMotorStop();
-			save_valve_para_g.valve_status = VALVE_OPENING;
-			valve_ctrl_para_g.open_time_cnt = GetValveRunMaxTime(caliber_type_l);
-		}
+//		if(valve_ctrl_para_g.force_open_status ==SET){
+//			//�ط�����������ǿ�����ر�������״̬�ı�ɿ����У����ÿ�����ʱ
+//			ValveMotorStop();
+//			save_valve_para_g.valve_status = VALVE_OPENING;
+//			valve_ctrl_para_g.open_time_cnt = GetValveRunMaxTime(caliber_type_l);
+//		}
 	}
 	
-	
+	//���Ų���������״̬��λ
 	if((save_valve_para_g.valve_status==VALVE_OPENING)||(save_valve_para_g.valve_status==VALVE_CLOSING))
 		sys_fun_run_ctrl_p->valve_ctrl_flag.running_flag = SET;
 	else
@@ -276,7 +294,7 @@
 		break;
 		
 		case VC_CLOSE:
-			if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(valve_ctrl_para_g.force_open_status==RESET)){
+			if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(save_valve_para_g.valve_status != VALVE_CLOSING)&&(valve_ctrl_para_g.force_open_status==RESET)){
 				valve_ctrl_para_g.valve_ctrl_order = VC_CLOSE;
 				pwr_vol_g.alka_flag = AMS_VALVE_CTRL_BEFORE;
 				return PASS;
@@ -321,7 +339,7 @@
 	}else{
 		if(valve_ctrl_para_g.force_open_status ==SET){
 			valve_ctrl_para_g.force_open_status =RESET;
-			//��ʼ�ر�ǿ��
+			//ǿ������
 		}
 		
 	}

--
Gitblit v1.9.3