浏览代码

单相4路,2+2控制板。

liyi 1 年之前
父节点
当前提交
01259814ee

+ 9 - 4
control/PDU-AC-COMBINE/App/Main/Main.c

@@ -733,11 +733,15 @@ void check_or_controll_all()
 		if(rst != test)
 		{
 			uint8_t buff[20]= {0};
+			timer_disable(TIMER14);
 			if(rst)
 			{
-				while(All_On_Flag == 1)
-					DelayNms(5);
+//				while(All_On_Flag == 1)
+//					DelayNms(5);
+				
 				All_Off_Flag = 1;																										//È«¹Ø±êÖ¾ÖÃ1
+				All_On_Flag = 0;
+				Delay_Ms_2 = 0;
 				EE_ACDC_State_ReadReg[0].ACDC_Cha_On_Off_State=false;
 				EE_ACDC_State_ReadReg[0].ACDC_ALLCha_Off_State=true;
 				for(int i =0; i < RelaySlaveChaNum;i++){
@@ -746,8 +750,9 @@ void check_or_controll_all()
 			}
 			else
 			{
-				while(All_Off_Flag == 1)
-					DelayNms(5);
+//				while(All_Off_Flag == 1)
+//					DelayNms(5);
+				All_Off_Flag =0;
 				All_On_Flag = 1;																										//È«¹Ø±êÖ¾ÖÃ1
 				EE_ACDC_State_ReadReg[0].ACDC_Cha_On_Off_State=true;
 				EE_ACDC_State_ReadReg[0].ACDC_ALLCha_On_State=true;

+ 3 - 2
control/PDU-AC-COMBINE/App/Main/board_cfg.h

@@ -12,8 +12,8 @@
 #define   PRJ_1_SELF_LOCK_SWITCH    0
 #define   PRJ_TWIN_FIRE             0
 #define 	PRJ_ITK_8_CHANNEL					0
-#define   PRJ_2_2_BASE              0
-#define   PRJ_8_NEW									1
+#define   PRJ_2_2_BASE              1
+#define   PRJ_8_NEW									0
 
 
 
@@ -24,6 +24,7 @@
 	#define 	ACSingCurrid 							2 
 #elif PRJ_4_ALL_O_ALL_C
 	#define 	RelaySlaveChaNum 					4
+	#define   SUPPORT_SWITCH_REMENBER   1
 	#define 	SUPPORT_ALL_ON_OFF        1
 	#define 	SUPPORT_JLINK							1
 	#define   SUPPORT_DETECTION         1

+ 10 - 0
control/PDU-AC-COMBINE/App/Relay/Relay.c

@@ -111,3 +111,13 @@ void InitRelay(void)
   ConfigRelayGPIO();  
 }
 
+#if SURPPORT_2_2
+
+void solid_on()
+{
+	gpio_bit_set(RELAY_2_4_RCU, RELAY_3); 
+	gpio_bit_set(RELAY_2_4_RCU, RELAY_4); 
+}
+
+
+#endif

+ 3 - 0
control/PDU-AC-COMBINE/App/Relay/Relay.h

@@ -122,5 +122,8 @@
 
 void InitRelay(void);                   	//³õʼ»¯RelayÄ£¿é
 
+#if SURPPORT_2_2
+void solid_on();
+#endif
 
 #endif

+ 18 - 4
control/PDU-AC-COMBINE/HW/Timer/Timer.c

@@ -240,7 +240,7 @@ void TIMER14_IRQHandler(void)
 		s_i2msFlag = 1;
 		if(All_Off_Flag)
 		{
-#if SUPPORT_DETECTION_SWITCH
+#if SUPPORT_DETECTION
 			if(detection_value == 0)			// no elect
 			{
 					timer_disable(TIMER14);																																							//关闭定时器
@@ -323,7 +323,7 @@ void TIMER14_IRQHandler(void)
 				
 		}else if(All_On_Flag)
 		{
-#if SUPPORT_DETECTION_SWITCH
+#if SUPPORT_DETECTION
 				if(detection_value == 0)			// no elect
 				{
 						timer_disable(TIMER14);																																							//关闭定时器
@@ -331,7 +331,21 @@ void TIMER14_IRQHandler(void)
 						All_On_Flag = 0;
 						All_Off_Flag = 0;
 						return;
-				}		
+				}	
+#if ((RelaySlaveChaNum  == 6) || ((RelaySlaveChaNum == 8) && SUPPORT_2_DETECTION))
+				if((detection_value & 0x1) == 0)
+				{
+						uint8_t k = 0;
+					  for(k=0;k <(RelaySlaveChaNum)/2;k++)
+							EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State = false;
+				}
+				if((detection_value & 0x2) == 0)
+				{
+						uint8_t k = 0;
+						for(k=(RelaySlaveChaNum)/2;k <RelaySlaveChaNum;k++)
+							EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State = false;
+				}									
+#endif				
 #endif
 #if (RelaySlaveChaNum >= 1)
 				if((EE_ACDC_Delay_ReadReg_On[0].ACDC_Delay==Delay_Ms_2)||(EE_ACDC_Delay_ReadReg_On[0].ACDC_Delay==0xffff)||(EE_ACDC_Delay_ReadReg_On[0].ACDC_Delay==0))//确保这里的和读取电能参数的顺序是一致的
@@ -465,7 +479,7 @@ void TIMER16_IRQHandler(void)
     s_iCnt1000 = 0;       //重置1000ms计数器的计数值为0
     s_i1secFlag = 1;      //将1s标志位的值设置为1
   } 
-	if(cnt == 60000)
+	if(cnt == 30000)
 	{
 		write_2_minute_flag = 1;
 		cnt = 0;