|
@@ -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,14 +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的数据
|
|
|
//输出耗电量计算。累计。
|
|
//输出耗电量计算。累计。
|
|
|
|
|
|
|
@@ -883,8 +891,12 @@ int main(void)
|
|
|
uint32_t I_in = 0;
|
|
uint32_t I_in = 0;
|
|
|
uint32_t W_in = 0;
|
|
uint32_t W_in = 0;
|
|
|
#if SUPPORT_STM32_ADC
|
|
#if SUPPORT_STM32_ADC
|
|
|
- uint32_t voltage_chi_1 = read_voltage(STM32_ADC_V_1) *1000;
|
|
|
|
|
- uint32_t voltage_chi_2 = read_voltage(STM32_ADC_V_2) *1000;
|
|
|
|
|
|
|
+ uint32_t voltage_chi_1 = 0;
|
|
|
|
|
+ uint32_t voltage_chi_2 = 0;
|
|
|
|
|
+ voltage_chi_1 = read_voltage(STM32_ADC_V_1) ;
|
|
|
|
|
+ //delay_ms(5);
|
|
|
|
|
+ voltage_chi_2 = read_voltage(STM32_ADC_V_2) ;
|
|
|
|
|
+
|
|
|
DCPDU_Modbus_Reg[Mb_Dbuff_VInput_Addr] = voltage_chi_1 > voltage_chi_2 ? voltage_chi_1 : voltage_chi_2;
|
|
DCPDU_Modbus_Reg[Mb_Dbuff_VInput_Addr] = voltage_chi_1 > voltage_chi_2 ? voltage_chi_1 : voltage_chi_2;
|
|
|
#else
|
|
#else
|
|
|
DCPDU_Modbus_Reg[Mb_Dbuff_VInput_Addr] = DC_V_calfunction(adc_Avg_value[ADC_VOL]);
|
|
DCPDU_Modbus_Reg[Mb_Dbuff_VInput_Addr] = DC_V_calfunction(adc_Avg_value[ADC_VOL]);
|
|
@@ -1135,7 +1147,11 @@ void MODbus_CMD(void)
|
|
|
}
|
|
}
|
|
|
else if(Modbus_Wr_buff[Wr_eeprom_cnt][1] == Mb_Dbuff_RL_Alloff_Addr)//设置继电器全关
|
|
else if(Modbus_Wr_buff[Wr_eeprom_cnt][1] == Mb_Dbuff_RL_Alloff_Addr)//设置继电器全关
|
|
|
{
|
|
{
|
|
|
|
|
+#if SUPPORT_EIGHT_LIGHT
|
|
|
RL_Rx_state = 0x80;
|
|
RL_Rx_state = 0x80;
|
|
|
|
|
+#else
|
|
|
|
|
+ RL_Rx_state = 0;
|
|
|
|
|
+#endif
|
|
|
RL_Alloff_flag = true;
|
|
RL_Alloff_flag = true;
|
|
|
//Eeprom_Rbuf[ERom_RL_ST_Addr] = 0x00;
|
|
//Eeprom_Rbuf[ERom_RL_ST_Addr] = 0x00;
|
|
|
//AT24CxxWriteOneByte(ERom_RL_ST_Addr,Eeprom_Rbuf[ERom_RL_ST_Addr]);
|
|
//AT24CxxWriteOneByte(ERom_RL_ST_Addr,Eeprom_Rbuf[ERom_RL_ST_Addr]);
|