Forráskód Böngészése

4路板总开总关去干扰,按键消抖。

liyi 5 hónapja%!(EXTRA string=óta)
szülő
commit
4d90cec969

+ 10 - 0
truing_control/PDU-AC_ADA_NEW_6/hardware/detection/detection.c

@@ -251,6 +251,11 @@ void EXTI4_15_IRQHandler(void){
 	if(RESET != exti_interrupt_flag_get(KEY_RST_EXTI))
 	{
 		exti_interrupt_flag_clear(KEY_RST_EXTI);
+		for(int i = 0;i < 30;i++);
+		if(gpio_input_bit_get(KEY_RST_IO,KEY_RST) != 0)
+		{
+			return;
+		}
 		if(board)
 		{
 			if(gpio_input_bit_get(KEY_TEST_IO,KEY_TEST) != 0)
@@ -372,6 +377,11 @@ void EXTI2_3_IRQHandler(void)
 	if(RESET != exti_interrupt_flag_get(KEY_TEST_EXTI))
 	{
 		exti_interrupt_flag_clear(KEY_TEST_EXTI);
+		for(int i = 0;i < 30;i++);
+		if(gpio_input_bit_get(KEY_TEST_IO,KEY_TEST) != 0)
+		{
+			return;
+		}
 		if(board)
 		{
 			if(gpio_input_bit_get(KEY_RST_IO,KEY_RST) != 0)

+ 5 - 1
truing_control/PDU-AC_ADA_NEW_6/hardware/relay/relay.c

@@ -129,7 +129,7 @@ void relay_init(void)
 		gpio_mode_set(RELAY_GPIO,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_3);
 		gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_3);
 		#if SUPPORT_CTRL2_LOCK2
-			#if (AVALIABLE_RELAY > 3)
+			#if (AVALIABLE_RELAY < 3)
 				gpio_bit_set(RELAY_GPIO, RELAY_3);
 			#else
 				gpio_bit_reset(RELAY_GPIO, RELAY_3);
@@ -152,7 +152,11 @@ void relay_init(void)
 		gpio_output_options_set(RELAY_GPIO, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_4);
 		
 		#if SUPPORT_CTRL2_LOCK2
+			#if (AVALIABLE_RELAY < 4)
 				gpio_bit_set(RELAY_GPIO, RELAY_4);
+			#else
+				gpio_bit_reset(RELAY_GPIO, RELAY_4);
+			#endif
 		#else
 			#if SUPPORT_MON
 				gpio_bit_set(RELAY_GPIO, RELAY_4);

+ 12 - 3
truing_control/PDU-AC_ADA_NEW_6/hardware/timer/timer.c

@@ -15,7 +15,7 @@
 
 static board_t *board = 0;
 static  void timer14_config(uint16_t arr,uint16_t psc);
-static void timer15_config(uint16_t arr,uint16_t psc);
+
 static void relay_remember(void);
 
 static  uint16_t count_1s = 0;
@@ -24,15 +24,21 @@ static  uint16_t count_100ms = 0;
 
 uint16_t rl_delay_cnt[RelaySlaveChaNum] = {0};
 uint16_t rl_delay_flag[RelaySlaveChaNum] = {0};
+
+#if SUPPORT_PWM_OUT_RELAY
+
 uint8_t rl_open_delay_flag[RelaySlaveChaNum] = {0};
 uint8_t rl_open_delay_count[RelaySlaveChaNum] = {0};
 uint8_t rl_pwm_flag[RelaySlaveChaNum] = {0};
-
+static void timer15_config(uint16_t arr,uint16_t psc);
+#endif
 
 void time_init(void)
 {
 	timer14_config(9999,71);;
+#if SUPPORT_PWM_OUT_RELAY
 	timer15_config(24,71);
+#endif
 }
 
 
@@ -82,6 +88,7 @@ void TIMER14_IRQHandler(void)
 					SET_RL_COUNTER_END_FLAG(board->relay_staging_staus[i]);
 				}
 			}
+#if SUPPORT_PWM_OUT_RELAY
 			if(rl_open_delay_flag[i])
 			{
 				if(rl_open_delay_count[i] < 3)
@@ -94,6 +101,7 @@ void TIMER14_IRQHandler(void)
 					rl_open_delay_flag[i] = 0;
 				}
 			}
+#endif
 		}
 		if(count_1s == 100)
 		{
@@ -130,6 +138,7 @@ void TIMER14_IRQHandler(void)
 	
 }
 
+#if SUPPORT_PWM_OUT_RELAY
 
 static void timer15_config(uint16_t arr,uint16_t psc)
 {
@@ -166,4 +175,4 @@ void TIMER15_IRQHandler(void)
 	}
 
 }
-
+#endif

+ 6 - 2
truing_control/PDU-AC_ADA_NEW_6/user/board_cfg.h

@@ -63,24 +63,27 @@
 #define   PRJ_3_NEW                 0
 #define 	PRJ_5_NEW									0
 #define 	PRJ_4_SELF_LOCK       	  0
-#define   PRJ_4_BASE                0
+#define   PRJ_4_BASE                1
 #define   PRJ_1_BASE                0
 #define 	PRJ_1_SELF_LOCK       	  0
 #define   PRJ_1_ALL_MON             0
 #define   PRJ_4_NO_MON              0
 
-#define   PRJ_3_BASE                1
+#define   PRJ_3_BASE                0
 
 #define   PRJ_3_NEW_2               0
 #define   PRJ_7_NEW                 0
 
 #define   PRJ_4_SELF_LOCK_2_2       0
 #define   PPRJ_4_BASE_2_2           0
+#define   PPRJ_4_BASE_3_1           0
 
 #define   PRJ_7_NO_MON              0
 
 #define   PRJ_8_NO_MON              0
 
+#define   PRJ_4_KEY_EXIT            0
+
 
 
 
@@ -151,6 +154,7 @@
 	#define   PT_SUB_COUNT              (RelaySlaveChaNum)
 	#define   SUPPORT_DETECTION         1
 	#define   SUPPORT_RELAY_REMENBER		1
+	#define 	 SUPPORT_PWM_OUT_RELAY    1
 #elif PRJ_4_SELF_LOCK
 	#define 	RelaySlaveChaNum 					4
 	#define 	ACSingCurrid 							2 

+ 12 - 2
truing_control/PDU-AC_ADA_NEW_6/user/main.c

@@ -30,9 +30,15 @@ board_t *get_board()
 	return &ac_board;
 }
 
+
 extern uint16_t rl_delay_cnt[RelaySlaveChaNum];
-extern uint8_t rl_open_delay_flag[RelaySlaveChaNum];
-extern uint8_t rl_pwm_flag[RelaySlaveChaNum];
+
+
+#if SUPPORT_PWM_OUT_RELAY
+	extern uint8_t rl_open_delay_flag[RelaySlaveChaNum];
+	extern uint8_t rl_pwm_flag[RelaySlaveChaNum];
+#endif
+
 static void task_query(void);
 static void task_1s(void);
 static void task_10s(void);
@@ -291,10 +297,14 @@ static void relay_ctrl(void)
 			{
 				CLEAR_RL_ON_FLAG(ac_board.relay_staging_staus[i]);
 				ac_board.open(i);
+#if SUPPORT_PWM_OUT_RELAY
 				rl_open_delay_flag[i] = 1;
+#endif
 			}else if(IS_RL_OFF_FLAG_EN(ac_board.relay_staging_staus[i]))
 			{
+#if SUPPORT_PWM_OUT_RELAY
 				rl_pwm_flag[i] = 0;
+#endif
 				CLEAR_RL_OFF_FLAG(ac_board.relay_staging_staus[i]);
 				ac_board.close(i);
 			}