Explorar el Código

DC 板 电流 开关检测。

liyi hace 1 año
padre
commit
3db6a1e8f2

+ 2 - 2
control/PDU-DC/App/ADC/ADC.h

@@ -29,10 +29,10 @@
 #define ADC_Vref     33  //实际ADC参考电压3.3V,扩大成33
 #define ADC_Vref     33  //实际ADC参考电压3.3V,扩大成33
 #define ADC_V_Gain   4020    //实际 200.9   扩大2009
 #define ADC_V_Gain   4020    //实际 200.9   扩大2009
 #define ADC_Fulscale 4096 //ADC满量程值,12位,即4096
 #define ADC_Fulscale 4096 //ADC满量程值,12位,即4096
-#define I_sens       1  //实际电流传感器的灵敏度,单位是V/A,扩大成1
+#define I_sens       0.66  //实际电流传感器的灵敏度,单位是V/A,扩大成1
 
 
 #if SUPPORT_STM32_ADC
 #if SUPPORT_STM32_ADC
-	#define A_gain       1  //电压放大倍数
+	#define A_gain       3  //电压放大倍数
 #else
 #else
 	#define A_gain       3  //电压放大倍数
 	#define A_gain       3  //电压放大倍数
 #endif
 #endif

+ 40 - 34
control/PDU-DC/App/Main/Main.c

@@ -686,48 +686,55 @@ int main(void)
 	{
 	{
 		LimiT_enable_check(i,DCPDU_Modbus_Reg[Mb_Dbuff_CH1ST_FT_Addr+i]);
 		LimiT_enable_check(i,DCPDU_Modbus_Reg[Mb_Dbuff_CH1ST_FT_Addr+i]);
 	}
 	}
-#if SUPPORT_EIGHT_LIGHT
-	Relayx_Onoff_state(7,RELAY_ON);
-#endif
-	Fwdgt_Init();
 #if SUPPORT_DETECTION
 #if SUPPORT_DETECTION
 		detection_value = get_detection();
 		detection_value = get_detection();
 #endif
 #endif
+#if SUPPORT_EIGHT_LIGHT
+	Relayx_Onoff_state(7,RELAY_ON);
+#endif
+	//Fwdgt_Init();
+
 	while(1)
 	while(1)
 	{
 	{
 		
 		
 #if SUPPORT_DETECTION
 #if SUPPORT_DETECTION
 		if((detection_value & 0x1) == 0)
 		if((detection_value & 0x1) == 0)
 		{
 		{
-			for(int i = 0; i <RELAY_ChN_default / 2;i++)
-			{
-
-					uint8_t temp0 = 0x01 << i;
-					Relayx_Onoff_state(i,RELAY_OFF);
-					temp0 = ~temp0;
-					DCPDU_Modbus_Reg[Mb_Dbuff_RL_ST_Addr] &= temp0;
-					//E
-					//AT24CxxWriteOneByte(ERom_RL_ST_Addr,Eeprom_Rbuf[ERom_RL_ST_Addr]);
-			}
-			Eeprom_Rbuf[ERom_RL_ST_Addr] = DCPDU_Modbus_Reg[Mb_Dbuff_RL_ST_Addr] & Active_state_bit;
-			RL_Rx_state = Eeprom_Rbuf[ERom_RL_ST_Addr];
-			Write_74hc573();
+//			for(int i = 0; i <RELAY_ChN_default / 2;i++)
+//			{
+
+//					uint8_t temp0 = 0x01 << i;
+//					Relayx_Onoff_state(i,RELAY_OFF);
+//					temp0 = ~temp0;
+//					DCPDU_Modbus_Reg[Mb_Dbuff_RL_ST_Addr] &= temp0;
+//					//E
+//					//AT24CxxWriteOneByte(ERom_RL_ST_Addr,Eeprom_Rbuf[ERom_RL_ST_Addr]);
+//			}
+//			Eeprom_Rbuf[ERom_RL_ST_Addr] = DCPDU_Modbus_Reg[Mb_Dbuff_RL_ST_Addr] & Active_state_bit;
+//			RL_Rx_state = Eeprom_Rbuf[ERom_RL_ST_Addr];
+//			Write_74hc573();
+				uint8_t data = RL_Rx_state;
+				RL_Rx_state = 0xF0;
+				RL_Rx_state &= data;
 		}
 		}
 		if((detection_value & 0x2) == 0)
 		if((detection_value & 0x2) == 0)
 		{
 		{
-			for(int i = RELAY_ChN_default / 2; i <RELAY_ChN_default;i++)
-			{
-
-					uint8_t temp0 = 0x01 << i;
-					Relayx_Onoff_state(i,RELAY_OFF);
-					temp0 = ~temp0;
-					DCPDU_Modbus_Reg[Mb_Dbuff_RL_ST_Addr] &= temp0;
-					//E
-					//AT24CxxWriteOneByte(ERom_RL_ST_Addr,Eeprom_Rbuf[ERom_RL_ST_Addr]);
-			}
-			Eeprom_Rbuf[ERom_RL_ST_Addr] = DCPDU_Modbus_Reg[Mb_Dbuff_RL_ST_Addr] & Active_state_bit;
-			RL_Rx_state = Eeprom_Rbuf[ERom_RL_ST_Addr];
-			Write_74hc573();
+//			for(int i = RELAY_ChN_default / 2; i <RELAY_ChN_default;i++)
+//			{
+
+//					uint8_t temp0 = 0x01 << i;
+//					Relayx_Onoff_state(i,RELAY_OFF);
+//					temp0 = ~temp0;
+//					DCPDU_Modbus_Reg[Mb_Dbuff_RL_ST_Addr] &= temp0;
+//					//E
+//					//AT24CxxWriteOneByte(ERom_RL_ST_Addr,Eeprom_Rbuf[ERom_RL_ST_Addr]);
+//			}
+//			Eeprom_Rbuf[ERom_RL_ST_Addr] = DCPDU_Modbus_Reg[Mb_Dbuff_RL_ST_Addr] & Active_state_bit;
+//			RL_Rx_state = Eeprom_Rbuf[ERom_RL_ST_Addr];
+//			Write_74hc573();
+			uint8_t data = RL_Rx_state;
+			RL_Rx_state = 0x0F;
+			RL_Rx_state &= data;
 		}
 		}
 #endif
 #endif
 		CHK_JLINK();
 		CHK_JLINK();
@@ -824,16 +831,15 @@ int main(void)
 		{
 		{
 			read_adc_val();
 			read_adc_val();
 			read_adc_flag = 0;
 			read_adc_flag = 0;
+#if SUPPORT_DETECTION
+		detection_value = get_detection();
+#endif
 		}
 		}
 
 
 		if(Get1SecFlag()) //判断1s标志状态
 		if(Get1SecFlag()) //判断1s标志状态
 		{
 		{
 			LEDFlicker2();
 			LEDFlicker2();
 			Clr1SecFlag();  //清除1s标志
 			Clr1SecFlag();  //清除1s标志
-
-#if SUPPORT_DETECTION
-		detection_value = get_detection();
-#endif
 			//read_adc_val();//定时读取ADC的数据
 			//read_adc_val();//定时读取ADC的数据
 			//输出耗电量计算。累计。
 			//输出耗电量计算。累计。
 			
 			

+ 1 - 1
control/PDU-DC/App/Main/board_cnf.h

@@ -30,7 +30,7 @@
 #elif			PRJ_ADC_V_DC_4_4
 #elif			PRJ_ADC_V_DC_4_4
 	#define RELAY_ChN_default             		8
 	#define RELAY_ChN_default             		8
 	#define SURPPOT_ALL_ON_ALL_OFF          	1
 	#define SURPPOT_ALL_ON_ALL_OFF          	1
-	#define SUPPORT_DETECTION               	0
+	#define SUPPORT_DETECTION               	1
 	#define SUPPORT_STM32_ADC                 1
 	#define SUPPORT_STM32_ADC                 1
 #endif
 #endif
 
 

+ 3 - 3
control/PDU-DC/App/uart_IM1253E/IM1253E.c

@@ -163,8 +163,8 @@ uint32_t read_voltage(uint8_t channel)
 	uint32_t value;
 	uint32_t value;
 	RX_Length = 4;
 	RX_Length = 4;
 	che442_change_ch(channel);
 	che442_change_ch(channel);
-	//memset(&data.value,0,4);
 	DelayNms(5);
 	DelayNms(5);
+	//memset(&data.value,0,4);
 	Start_Send_UartData((uint8_t*)&read_volatge,sizeof(read_volatge));
 	Start_Send_UartData((uint8_t*)&read_volatge,sizeof(read_volatge));
 	int count = 0;
 	int count = 0;
 	while(Rx_Finish_flag != true)
 	while(Rx_Finish_flag != true)
@@ -185,14 +185,14 @@ uint32_t read_voltage(uint8_t channel)
 		while(Rx_Finish_flag != true)
 		while(Rx_Finish_flag != true)
 		{
 		{
 			DelayNms(1);
 			DelayNms(1);
-			if(count >= 10)
+			if(count >= 100)
 			{
 			{
 				RX_Index = 0;
 				RX_Index = 0;
 				Rx_Finish_flag =false;
 				Rx_Finish_flag =false;
 				break;
 				break;
 			}
 			}
+			count ++;
 		}
 		}
-		count ++;
 	}
 	}
 	if(Rx_Finish_flag)
 	if(Rx_Finish_flag)
 	{
 	{