Bläddra i källkod

新5路板,手动开关。

liyi 3 månader sedan
förälder
incheckning
81bf3849a8

+ 39 - 6
truing_control/PDU-AC_ADA_NEW_6/hardware/detection/detection.c

@@ -64,11 +64,14 @@
 #define    KEY_TEST_4_IO_SOURCE         			  EXTI_SOURCE_PIN1
 #define    KEY_TEST_4_IO_EXIT      					    EXTI_1
 
-
+#define    KEY_TEST_5_IO												GPIO_PIN_12
+#define  	 KEY_TEST_5_IO_SOURCE_RCU							EXTI_SOURCE_GPIOA
+#define    KEY_TEST_5_IO_SOURCE         			  EXTI_SOURCE_PIN12
+#define    KEY_TEST_5_IO_EXIT      					    EXTI_12
 
 #define    KEY_TEST_1_GPIO          GPIOC
 #define    KEY_TEST_2_GPIO					GPIOB
-#define 	 KEY_TEST_3_4_GPIO        GPIOA
+#define 	 KEY_TEST_3_4_5_GPIO        GPIOA
 
 
 
@@ -214,7 +217,7 @@ void key_init(void)
 	
 	
 #if (RelaySlaveChaNum >= 3)
-	gpio_mode_set(KEY_TEST_3_4_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_3_IO);
+	gpio_mode_set(KEY_TEST_3_4_5_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_3_IO);
 	nvic_irq_enable(EXTI0_1_IRQn,1);
 	syscfg_exti_line_config(KEY_TEST_3_IO_SOURCE_RCU,KEY_TEST_3_IO_SOURCE);
 	exti_init(KEY_TEST_3_IO_EXIT,EXTI_INTERRUPT,EXTI_TRIG_FALLING);
@@ -222,13 +225,20 @@ void key_init(void)
 #endif	
 	
 #if (RelaySlaveChaNum >= 4)
-	gpio_mode_set(KEY_TEST_3_4_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_4_IO);
+	gpio_mode_set(KEY_TEST_3_4_5_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_4_IO);
 	nvic_irq_enable(EXTI0_1_IRQn,1);
 	syscfg_exti_line_config(KEY_TEST_4_IO_SOURCE_RCU,KEY_TEST_4_IO_SOURCE);
 	exti_init(KEY_TEST_4_IO_EXIT,EXTI_INTERRUPT,EXTI_TRIG_FALLING);
 	exti_interrupt_flag_clear(KEY_TEST_4_IO_EXIT);	
 #endif	
 	
+#if (RelaySlaveChaNum >= 5)
+	gpio_mode_set(KEY_TEST_3_4_5_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_5_IO);
+	nvic_irq_enable(EXTI4_15_IRQn,1);
+	syscfg_exti_line_config(KEY_TEST_5_IO_SOURCE_RCU,KEY_TEST_5_IO_SOURCE);
+	exti_init(KEY_TEST_5_IO_EXIT,EXTI_INTERRUPT,EXTI_TRIG_FALLING);
+	exti_interrupt_flag_clear(KEY_TEST_5_IO_EXIT);	
+#endif	
 
 #endif
 	
@@ -288,6 +298,7 @@ void EXTI4_15_IRQHandler(void){
 	if(RESET != exti_interrupt_flag_get(KEY_TEST_1_IO_EXIT))
 	{
 		exti_interrupt_flag_clear(KEY_TEST_1_IO_EXIT);
+		for(int i = 0;i <30;i++);
 		if(gpio_input_bit_get(KEY_TEST_1_GPIO,KEY_TEST_1_IO) == 0)
 		{
 				async_data da = {0};
@@ -301,6 +312,25 @@ void EXTI4_15_IRQHandler(void){
 		}
 	}
 #endif
+	
+#if (RelaySlaveChaNum >= 5)
+	if(RESET != exti_interrupt_flag_get(KEY_TEST_5_IO_EXIT))
+	{
+		exti_interrupt_flag_clear(KEY_TEST_5_IO_EXIT);
+		for(int i = 0;i <30;i++);
+		if(gpio_input_bit_get(KEY_TEST_3_4_5_GPIO,KEY_TEST_5_IO) == 0)
+		{
+				async_data da = {0};
+				da.fire_or_zero = _FIRE;
+				da.method = PROMPT_CTRL;
+				da.w_eep_flag = FLAG_W_EEP;
+				da.channel = 4;
+				da.reg = &board->relay_staging_staus[4];
+				da.status = board->md_data.r_data.state.state[4].state ? 0 : 1;
+				set_relay_sta_async(&da);	
+		}
+	}
+#endif
 
 
 #endif
@@ -332,7 +362,8 @@ void EXTI0_1_IRQHandler(void)
 			if(RESET != exti_interrupt_flag_get(KEY_TEST_3_IO_EXIT))
 			{
 				exti_interrupt_flag_clear(KEY_TEST_3_IO_EXIT);
-				if(gpio_input_bit_get(KEY_TEST_3_4_GPIO,KEY_TEST_3_IO) == 0)
+				for(int i = 0;i <30;i++);
+				if(gpio_input_bit_get(KEY_TEST_3_4_5_GPIO,KEY_TEST_3_IO) == 0)
 				{
 						async_data da = {0};
 						da.fire_or_zero = _FIRE;
@@ -352,7 +383,8 @@ void EXTI0_1_IRQHandler(void)
 		if(RESET != exti_interrupt_flag_get(KEY_TEST_4_IO_EXIT))
 		{
 			exti_interrupt_flag_clear(KEY_TEST_4_IO_EXIT);
-			if(gpio_input_bit_get(KEY_TEST_3_4_GPIO,KEY_TEST_4_IO) == 0)
+			for(int i = 0;i <30;i++);
+			if(gpio_input_bit_get(KEY_TEST_3_4_5_GPIO,KEY_TEST_4_IO) == 0)
 			{
 					async_data da = {0};
 					da.fire_or_zero = _FIRE;
@@ -445,6 +477,7 @@ void EXTI2_3_IRQHandler(void)
 		if(board->md_data.r_data.detection & 0x1)	
 #endif
 		{
+			for(int i = 0;i <30;i++);
 			if(gpio_input_bit_get(KEY_TEST_2_GPIO,KEY_TEST_2_IO) == 0)
 			{
 					async_data da = {0};

+ 9 - 2
truing_control/PDU-AC_ADA_NEW_6/hardware/timer/timer.c

@@ -35,7 +35,7 @@ static void timer15_config(uint16_t arr,uint16_t psc);
 
 void time_init(void)
 {
-	timer14_config(9999,71);;
+	timer14_config(9999,71);
 #if SUPPORT_PWM_OUT_RELAY
 	timer15_config(24,71);
 #endif
@@ -166,13 +166,20 @@ void TIMER15_IRQHandler(void)
 		timer_interrupt_flag_clear(TIMER15, TIMER_INT_FLAG_UP);
 	}
 	board = get_board();
+	uint32_t value = 0;
 	for(int i = 0; i < RelaySlaveChaNum;i++)
 	{
 		if(board->md_data.r_data.state.state[i].state == 1 && rl_pwm_flag[i])
 		{
-			board->tog(i);
+			value |= (1<<(i));
+			GPIO_TG(GPIOB) = BIT((8+i));
 		}
 	}
+	if(value)
+	{
+		board->unlock();
+		board->lock();
+	}
 
 }
 #endif

+ 2 - 0
truing_control/PDU-AC_ADA_NEW_6/modbus/BARE/port/porttimer.c

@@ -29,6 +29,7 @@
 #include "gd32e23x_rcu.h"
 #include "gd32e23x_misc.h"
 #include "gd32e23x_it.h"
+#include "common.h"
 /* ----------------------- static functions ---------------------------------*/
 static void prvvTIMERExpiredISR( void );
 
@@ -87,6 +88,7 @@ static void prvvTIMERExpiredISR( void )
 {
     ( void )pxMBPortCBTimerExpired(  );
 }
+
 void TIMER13_IRQHandler(void)
 {
     if(RESET != timer_interrupt_flag_get(TIMER13, TIMER_INT_UP))

+ 14 - 5
truing_control/PDU-AC_ADA_NEW_6/user/board_cfg.h

@@ -63,7 +63,7 @@
 #define   PRJ_3_NEW                 0
 #define 	PRJ_5_NEW									0
 #define 	PRJ_4_SELF_LOCK       	  0
-#define   PRJ_4_BASE                1
+#define   PRJ_4_BASE                0
 #define   PRJ_1_BASE                0
 #define 	PRJ_1_SELF_LOCK       	  0
 #define   PRJ_1_ALL_MON             0
@@ -84,7 +84,7 @@
 
 #define   PRJ_4_KEY_EXIT            0
 
-
+#define   PRJ_5_KEY_EXIT            1
 
 
 
@@ -154,7 +154,6 @@
 	#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 
@@ -172,7 +171,17 @@
 	#define   SUPPORT_DETECTION         1
 	#define   SUPPORT_RELAY_REMENBER		1
 	#define   SUPPORT_KEY_EXIT          1
+	#define   SUPPORT_PWM_OUT_RELAY     1
+#elif PRJ_5_KEY_EXIT
 
+	#define 	RelaySlaveChaNum 					5
+	#define 	ACSingCurrid 							2 
+	#define   SURPPORT_2_PT             0
+	#define   PT_SUB_COUNT              (RelaySlaveChaNum)
+	#define   SUPPORT_DETECTION         1
+	#define   SUPPORT_RELAY_REMENBER		1
+	#define   SUPPORT_KEY_EXIT          1
+	#define   SUPPORT_PWM_OUT_RELAY     1
 #elif PRJ_4_BASE
 	#define 	RelaySlaveChaNum 					4
 	#define 	ACSingCurrid 							2 
@@ -180,7 +189,7 @@
 	#define   PT_SUB_COUNT              (RelaySlaveChaNum)
 	#define   SUPPORT_DETECTION         1
 	#define   SUPPORT_RELAY_REMENBER		1
-	#define   SUPPORT_ALL_ON_OFF    		1
+	//#define   SUPPORT_ALL_ON_OFF    		1
 #elif PPRJ_4_BASE_2_2
 	#define 	RelaySlaveChaNum 					4
 	#define 	ACSingCurrid 							2 
@@ -208,7 +217,7 @@
 	#define   PT_SUB_COUNT              (RelaySlaveChaNum)
 	#define   SUPPORT_DETECTION         1
 	#define   SUPPORT_RELAY_REMENBER		1
-	#define   SUPPORT_ALL_ON_OFF    		1
+	//#define   SUPPORT_ALL_ON_OFF    		1
 #elif PRJ_1_SELF_LOCK
 	#define 	RelaySlaveChaNum 					1
 	#define 	ACSingCurrid 							2 

+ 9 - 0
truing_control/PDU-AC_ADA_NEW_6/user/main.c

@@ -66,7 +66,12 @@ int main(){
 	key_init();
 	//device
 	fwdgt_Init();
+#if SUPPORT_PWM_OUT_RELAY
+	eMBInit(MB_RTU, ac_board.haddr, 0, 38400, MB_PAR_NONE);
+#else
 	eMBInit(MB_RTU, ac_board.haddr, 0, 115200, MB_PAR_NONE);
+#endif
+
 	eMBEnable();
 	
 	ac_board.md_data.r_data.info.channels = RelaySlaveChaNum;
@@ -134,7 +139,11 @@ int main(){
 	{
 		if(eMBCheck())
 		{
+#if SUPPORT_PWM_OUT_RELAY
+			eMBInit(MB_RTU, ac_board.haddr, 0, 38400, MB_PAR_NONE);
+#else
 			eMBInit(MB_RTU, ac_board.haddr, 0, 115200, MB_PAR_NONE);
+#endif
 			eMBEnable();
 			DelayNms(1);
 		}