liyi 1 vuosi sitten
vanhempi
commit
644c94dae2

+ 9 - 0
truing_control/PDU_AC_OLD/App/Key/Key.c

@@ -163,14 +163,23 @@ uint8_t get_detection(void)
 {
 		uint8_t value = 0;
 #if SUPPORT_DETECTION
+	
 		if(key_detection_1 > 0)
 		{
+	#if SUPPORT_DRICION
+			value |= (1 << 1);
+	#else
 			value |= (1 << 0);
+	#endif
 		}
 	#if SUPPORT_2_DETECTION
 		if(key_detection_2 > 0)
 		{
+		#if SUPPORT_DRICION
+			value |= (1 << 0);
+		#else
 			value |= (1 << 1);
+		#endif
 		}
 	#endif
 #endif 

+ 15 - 15
truing_control/PDU_AC_OLD/App/Main/Main.c

@@ -283,7 +283,6 @@ static  void  Proc100msTask(void)
 	unsigned int chal_num=0;
   if(Get100msFlag())  //ÅжÏ100ms±ê־״̬
   { 
-		
 		select_channel(channel);
 		Calculate_HLW8110_MeterData();
 		//AC_Ele_ReadReg[0].AC_V=(F_AC_V*EE_ACDC_Coef_ReadReg[0].ACDC_V_k)+(EE_ACDC_Coef_ReadReg[0].ACDC_V_b/1000);
@@ -498,13 +497,14 @@ void switch_recode()
 			{
 					if(handle_detection[0] == 1)
 					{
-						uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
-						for(uint8_t k = 0; k < channel;k++)
+
+						//uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
+						for(uint8_t k = 0; k < PT_Sub_NUM;k++)
 							handle_status[k] = EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State;
 											EE_ACDC_State_ReadReg[0].ACDC_ALLCha_Off_State=true;
-						for(uint8_t k = 0; k < channel;k++)
+						for(uint8_t k = 0; k < PT_Sub_NUM;k++)
 							EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=false;
-						for(uint8_t k = 0; k < channel;k++)
+						for(uint8_t k = 0; k < PT_Sub_NUM;k++)
 							RelayState_ch(k);
 						handle_detection[0] = 0;
 					}
@@ -513,8 +513,8 @@ void switch_recode()
 				if(handle_detection[0] == 0)
 				{
 					handle_detection[0] = 1;
-					uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
-					for(uint8_t k = 0; k < channel;k++)
+					//uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
+					for(uint8_t k = 0; k < PT_Sub_NUM;k++)
 						EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=handle_status[k];
 					EE_ACDC_State_ReadReg[0].ACDC_ALLCha_On_State=true;
 					input_1_en = 1;
@@ -526,14 +526,14 @@ void switch_recode()
 			{
 				if(handle_detection[1] == 1)
 				{
-					uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum /2);
-					for(uint8_t k = channel; k < RelaySlaveChaNum;k++)
+					//uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum /2);
+					for(uint8_t k = PT_Sub_NUM; k < RelaySlaveChaNum;k++)
 						handle_status[k] = EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State;
 					EE_ACDC_State_ReadReg[0].ACDC_ALLCha_Off_State=true;
 					
-					for(uint8_t k = channel; k < RelaySlaveChaNum;k++)
+					for(uint8_t k = PT_Sub_NUM; k < RelaySlaveChaNum;k++)
 						EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=false;
-					for(uint8_t k = channel; k < RelaySlaveChaNum;k++)
+					for(uint8_t k = PT_Sub_NUM; k < RelaySlaveChaNum;k++)
 						RelayState_ch(k);
 					handle_detection[1] = 0;
 				}
@@ -542,8 +542,8 @@ void switch_recode()
 				if(handle_detection[1] == 0)
 				{
 					handle_detection[1] = 1;
-					uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
-					for(uint8_t k = channel; k < RelaySlaveChaNum;k++)
+					//uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
+					for(uint8_t k = PT_Sub_NUM; k < RelaySlaveChaNum;k++)
 						EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State=handle_status[k];
 					EE_ACDC_State_ReadReg[0].ACDC_ALLCha_On_State=true;
 							input_2_en = 1;
@@ -584,7 +584,7 @@ void switch_recode()
 	#if SUPPORT_2_DETECTION
 			if((detection_value & 1) == 0)
 			{
-					for(int i = 0; i < (RelaySlaveChaNum)/2;i++)
+					for(int i = 0; i < PT_Sub_NUM;i++)
 					{
 						set_channel_status(i,0);
 					}
@@ -592,7 +592,7 @@ void switch_recode()
 			}
 			if((detection_value & 2) == 0)
 			{
-					for(int i = (RelaySlaveChaNum)/2; i < RelaySlaveChaNum;i++)
+					for(int i = PT_Sub_NUM; i < RelaySlaveChaNum;i++)
 					{
 						set_channel_status(i,0);
 					}

+ 14 - 2
truing_control/PDU_AC_OLD/App/Main/board_cfg.h

@@ -9,7 +9,7 @@
 #define 	PRJ_6_BASE								0
 #define 	PRJ_8_BASE								0
 #define   PRJ_1_ALL_O_ALL_C         0
-#define   PRJ_1_SELF_LOCK_SWITCH    1
+#define   PRJ_1_SELF_LOCK_SWITCH    0
 #define   PRJ_TWIN_FIRE             0
 #define 	PRJ_ITK_8_CHANNEL					0
 #define   PRJ_2_2_BASE              0
@@ -19,6 +19,7 @@
 #define   PRJ_7                     0
 #define   PRJ_3_ALL_O_ALL_C         0
 #define   PRJ_ONE_DE                0
+#define   PRJ_WANG_8                1
 
 
 #if PRJ_4_BASE
@@ -44,6 +45,7 @@
 	#define 	SUPPORT_SWITCH_REMENBER		1
 	#define   SUPPORT_DETECTION         1
 	#define 	ACSingCurrid 							1 
+	#define   PT_Sub_NUM                3
 #elif PRJ_8_BASE
 	#define 	RelaySlaveChaNum 					8
 	#define   SUPPORT_FALLING_DETECTED  0
@@ -86,7 +88,8 @@
 	#define 	SUPPORT_2_DETECTION       2
 	#define 	SUPPORT_SWITCH_REMENBER		1
 	#define   SUPPORT_DETECTION         1
-	#define 	ACSingCurrid 							1 
+	#define 	ACSingCurrid 							1
+	#define   PT_Sub_NUM                4
 #elif    PRJ_OLD_4
 	#define 	RelaySlaveChaNum 					4
 	#define   SUPPORT_4_KEY             1
@@ -102,6 +105,7 @@
 	#define   SUPPORT_DETECTION         1
 	#define 	ACSingCurrid 							1
 	#define   SUPPORT_FALLING_DETECTED  0	
+	#define   PT_Sub_NUM                4
 #elif PRJ_3_ALL_O_ALL_C 
 	#define 	RelaySlaveChaNum 					3
 	#define   SUPPORT_SWITCH_REMENBER   1
@@ -113,6 +117,14 @@
 #elif PRJ_ONE_DE
 	#define 	RelaySlaveChaNum 					1
 	#define 	ACSingCurrid 							2 
+#elif PRJ_WANG_8            
+	#define 	RelaySlaveChaNum 					8
+	#define 	SUPPORT_2_DETECTION       2
+	#define 	SUPPORT_SWITCH_REMENBER		1
+	#define   SUPPORT_DETECTION         1
+	#define 	ACSingCurrid 							1 
+	#define   SUPPORT_DRICION           1
+	#define   PT_Sub_NUM              	3
 #endif
 
 

+ 4 - 4
truing_control/PDU_AC_OLD/App/Modbus/BARE/port/port.c

@@ -339,15 +339,15 @@ eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegi
 									if((detection_value & 0x1) == 0)
 									{
 											uint8_t k = 0;
-											uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
-											for(k=0;k <channel;k++)
+											//uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
+											for(k=0;k <PT_Sub_NUM;k++)
 												EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State = false;
 									}
 									if((detection_value & 0x2) == 0)
 									{
 											uint8_t k = 0;
-											uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
-											for(k=channel;k <RelaySlaveChaNum;k++)
+											//uint8_t channel = (RelaySlaveChaNum % 2) ? (RelaySlaveChaNum/2 +1) : (RelaySlaveChaNum / 2);
+											for(k=PT_Sub_NUM;k <RelaySlaveChaNum;k++)
 												EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State = false;
 									}										
 #else									

+ 36 - 8
truing_control/PDU_AC_OLD/App/Relay/Relay.h

@@ -31,17 +31,44 @@
 
 #define RELAY_RCU  				RCU_GPIOB
 #define RELAY_GPIO   			GPIOB
+
+#if SUPPORT_DRICION 
+#if (RelaySlaveChaNum >= 1)
+		#define RELAY_1           GPIO_PIN_15
+#endif
+#if (RelaySlaveChaNum >= 2)
+		#define RELAY_2           GPIO_PIN_14
+#endif
+#if (RelaySlaveChaNum >= 3)
+		#define RELAY_3           GPIO_PIN_13
+#endif
+#if (RelaySlaveChaNum >= 4)
+		#define RELAY_4           GPIO_PIN_12
+#endif
+#if (RelaySlaveChaNum >= 5)
+		#define RELAY_5           GPIO_PIN_11
+#endif
+#if (RelaySlaveChaNum >= 6)
+		#define RELAY_6           GPIO_PIN_10
+#endif
+#if (RelaySlaveChaNum >= 7)
+		#define RELAY_7           GPIO_PIN_9
+#endif
+#if (RelaySlaveChaNum >= 8)
+		#define RELAY_8           GPIO_PIN_8
+#endif
+
+#else
 		
-		
-	#if (RelaySlaveChaNum >= 1)
+#if (RelaySlaveChaNum >= 1)
 		#define RELAY_1           GPIO_PIN_8
-	#endif
-	#if (RelaySlaveChaNum >= 2)
+#endif
+#if (RelaySlaveChaNum >= 2)
 		#define RELAY_2           GPIO_PIN_9
-	#endif
-	#if (RelaySlaveChaNum >= 3)
+#endif
+#if (RelaySlaveChaNum >= 3)
 		#define RELAY_3           GPIO_PIN_10
-	#endif
+#endif
 #if (RelaySlaveChaNum >= 4)
 		#define RELAY_4           GPIO_PIN_11
 #endif
@@ -58,6 +85,8 @@
 		#define RELAY_8           GPIO_PIN_15
 #endif
 
+#endif
+
 #define RELAY_1_ON         gpio_bit_set(RELAY_GPIO,RELAY_1);
 #define RELAY_1_OFF        gpio_bit_reset(RELAY_GPIO,RELAY_1);
 
@@ -89,7 +118,6 @@
 
 
 
-
 void InitRelay(void);                   	//³õʼ»¯RelayÄ£¿é
 
 #if SURPPORT_2_2

+ 2 - 2
truing_control/PDU_AC_OLD/HW/Timer/Timer.c

@@ -343,13 +343,13 @@ void TIMER14_IRQHandler(void)
 				if((detection_value & 0x1) == 0)
 				{
 						uint8_t k = 0;
-					  for(k=0;k <(RelaySlaveChaNum)/2;k++)
+					  for(k=0;k <PT_Sub_NUM;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++)
+						for(k=PT_Sub_NUM;k <RelaySlaveChaNum;k++)
 							EE_ACDC_State_ReadReg[k].ACDC_Cha_On_Off_State = false;
 				}		
 #endif				

+ 64 - 0
truing_control/PDU_AC_OLD/HW/Uart1/Uart1.c

@@ -563,6 +563,69 @@ int fputc(int ch, FILE *f)
 
 void select_channel(uint8_t chx)
 {
+#if SUPPORT_DRICION
+	switch(chx)
+	{
+		case 7:
+		{
+			SEL_0_L;
+			SEL_1_L;
+			SEL_2_L;
+		}
+			break;
+		case 6:
+		{
+			SEL_0_H;
+			SEL_1_L;
+			SEL_2_L;	
+		}
+			break;
+		case 5:
+		{
+			SEL_0_L;
+			SEL_1_H;
+			SEL_2_L;	
+		}
+			break;
+		case 4:
+		{
+			SEL_0_H;
+			SEL_1_H;
+			SEL_2_L;	
+		}
+			break;
+		case 3:
+		{
+			SEL_0_L;
+			SEL_1_L;
+			SEL_2_H;	
+		}
+			break;
+		case 2:
+		{
+			SEL_0_H;
+			SEL_1_L;
+			SEL_2_H;	
+		}
+			break;
+		case 1:
+		{
+			SEL_0_L;
+			SEL_1_H;
+			SEL_2_H;	
+		}
+			break;
+		case 0:
+		{
+			SEL_0_H;
+			SEL_1_H;
+			SEL_2_H;	
+		}
+			break;
+		default:
+			break;
+	}	
+#else
 	switch(chx)
 	{
 		case 0:
@@ -624,4 +687,5 @@ void select_channel(uint8_t chx)
 		default:
 			break;
 	}
+#endif
 }