⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ade7758.c

📁 ADI公司的ADE7758全部使用原代码(包括校验)
💻 C
📖 第 1 页 / 共 5 页
字号:
	temp1=tempa&0x00000fff;
	adeburnparm.IA_RMS_OS=temp1;	

	temp1=uirmsvalmin.IB_RMS_MIN;
	temp2=temp1*tempItest;
	fz1=(float)temp2;
	fz1=fz1*temp2;	
	fz1=fz1/100;
	temp1=uirmsvaltest.IB_RMS_TEST;
	temp2=temp1*tempImin;
	fz2=(float)temp2;
	fz2=fz2*temp2;	
	fz2=fz2/10000;
	fz1=fz1-fz2;
	fz1=fz1/fm;
	tempa=fz1;
	temp1=tempa&0x00000fff;
	adeburnparm.IB_RMS_OS=temp1;	

	temp1=uirmsvalmin.IC_RMS_MIN;
	temp2=temp1*tempItest;
	fz1=(float)temp2;
	fz1=fz1*temp2;	
	fz1=fz1/100;
	temp1=uirmsvaltest.IC_RMS_TEST;
	temp2=temp1*tempImin;
	fz2=(float)temp2;
	fz2=fz2*temp2;	
	fz2=fz2/10000;
	fz1=fz1-fz2;
	fz1=fz1/fm;
	tempa=fz1;
	temp1=tempa&0x00000fff;
	adeburnparm.IC_RMS_OS=temp1;	

	if(wpd800_cfg.Wpd_Param.bURating==0x00)
	{
		tempUtest=60;	
		tempUmin=67;	
		fm=(float)(-3411.2);
	}
	else
	{
		tempUtest=220;	
		tempUmin=260;	
		fm=(float)(-12416);
	}
	temp1=uirmsvalmin.UA_RMS_MIN;
	fz1=(float)temp1;
	fz1=fz1*tempUtest;	
	temp2=uirmsvaltest.UA_RMS_TEST;
	fz2=(float)temp2;
	fz2=fz2*tempUmin;
	fz2=fz2/10;		
	fz1=fz1-fz2;
	fz1=fz1/fm;	
	tempa=fz1;
	temp1=tempa&0x00000fff;
	adeburnparm.UA_RMS_OS=temp1;	

	temp1=uirmsvalmin.UB_RMS_MIN;
	fz1=(float)temp1;
	fz1=fz1*tempUtest;	
	temp2=uirmsvaltest.UB_RMS_TEST;
	fz2=(float)temp2;
	fz2=fz2*tempUmin;
	fz2=fz2/10;		
	fz1=fz1-fz2;
	fz1=fz1/fm;	
	tempa=fz1;
	temp1=tempa&0x00000fff;
	adeburnparm.UB_RMS_OS=temp1;	

	temp1=uirmsvalmin.UC_RMS_MIN;
	fz1=(float)temp1;
	fz1=fz1*tempUtest;	
	temp2=uirmsvaltest.UC_RMS_TEST;
	fz2=(float)temp2;
	fz2=fz2*tempUmin;
	fz2=fz2/10;		
	fz1=fz1-fz2;
	fz1=fz1/fm;	
	tempa=fz1;
	temp1=tempa&0x00000fff;
	adeburnparm.UC_RMS_OS=temp1;			
}		
void AdeRead(void)//从ADE7758读出全部寄存器参数
{
	ReadAde2byte(aderegaddr[AWATTHR_R16S],(uint16 *)&(runaderegval.AWATTHR_VAL_R16S));
	ReadAde2byte(aderegaddr[BWATTHR_R16S],(uint16 *)&(runaderegval.BWATTHR_VAL_R16S));
	ReadAde2byte(aderegaddr[CWATTHR_R16S],(uint16 *)&(runaderegval.CWATTHR_VAL_R16S));
	ReadAde2byte(aderegaddr[AVARHR_R16S],(uint16 *)&(runaderegval.AVARHR_VAL_R16S));
	ReadAde2byte(aderegaddr[BVARHR_R16S],(uint16 *)&(runaderegval.BVARHR_VAL_R16S));
	ReadAde2byte(aderegaddr[CVARHR_R16S],(uint16 *)&(runaderegval.CVARHR_VAL_R16S));
	ReadAde2byte(aderegaddr[AVAHR_R16U],(uint16 *)&(runaderegval.AVAHR_VAL_R16U));
	ReadAde2byte(aderegaddr[BVAHR_R16U],(uint16 *)&(runaderegval.BVAHR_VAL_R16U));
	ReadAde2byte(aderegaddr[CVAHR_R16U],(uint16 *)&(runaderegval.CVAHR_VAL_R16U));
	
	ReadAde3byte(aderegaddr[AIRMS_R24U],(uint32 *)&(runaderegval.AIRMS_VAL_R24U));
	ReadAde3byte(aderegaddr[BIRMS_R24U],(uint32 *)&(runaderegval.BIRMS_VAL_R24U));
	ReadAde3byte(aderegaddr[CIRMS_R24U],(uint32 *)&(runaderegval.CIRMS_VAL_R24U));
	ReadAde3byte(aderegaddr[AVRMS_R24U],(uint32 *)&(runaderegval.AVRMS_VAL_R24U));
	ReadAde3byte(aderegaddr[BVRMS_R24U],(uint32 *)&(runaderegval.BVRMS_VAL_R24U));
	ReadAde3byte(aderegaddr[CVRMS_R24U],(uint32 *)&(runaderegval.CVRMS_VAL_R24U));

	ReadAde2byte(aderegaddr[FREQ_R12U],(uint16 *)&(runaderegval.FREQ_VAL_R12U));
	ReadAde1byte(aderegaddr[TEMP_R8S],(uint8 *)&(runaderegval.TEMP_VAL_R8S));
	ReadAde3byte(aderegaddr[WFORM_R24U],(uint32 *)&(runaderegval.WFORM_VAL_R24U));
	ReadAde1byte(aderegaddr[OPMODE_RW8U],(uint8 *)&(runaderegval.OPMODE_VAL_RW8U));
	ReadAde1byte(aderegaddr[MMODE_RW8U],(uint8 *)&(runaderegval.MMODE_VAL_RW8U));
	ReadAde1byte(aderegaddr[WAVMODE_RW8U],(uint8 *)&(runaderegval.WAVMODE_VAL_RW8U));
	ReadAde1byte(aderegaddr[COMPMODE_RW8U],(uint8 *)&(runaderegval.COMPMODE_VAL_RW8U));
	ReadAde1byte(aderegaddr[LCYCMODE_RW8U],(uint8 *)&(runaderegval.LCYCMODE_VAL_RW8U));
	ReadAde3byte(aderegaddr[MASK_RW24U],(uint32 *)&(runaderegval.MASK_VAL_RW24U));
	ReadAde3byte(aderegaddr[STATUS_R24U],(uint32 *)&(runaderegval.STATUS_VAL_R24U));
	ReadAde3byte(aderegaddr[RSTATUS_R24U],(uint32 *)&(runaderegval.RSTATUS_VAL_R24U));
	ReadAde2byte(aderegaddr[ZXTOUT_RW16U],(uint16 *)&(runaderegval.ZXTOUT_VAL_RW16U));
	ReadAde2byte(aderegaddr[LINECYC_RW16U],(uint16 *)&(runaderegval.LINECYC_VAL_RW16U));
	ReadAde1byte(aderegaddr[SAGCYC_RW8U],(uint8 *)&(runaderegval.SAGCYC_VAL_RW8U));
	ReadAde1byte(aderegaddr[SAGLVL_RW8U],(uint8 *)&(runaderegval.SAGLVL_VAL_RW8U));
	ReadAde1byte(aderegaddr[VPINTLVL_RW8U],(uint8 *)&(runaderegval.VPINTLVL_VAL_RW8U));
	ReadAde1byte(aderegaddr[IPINTLVL_RW8U],(uint8 *)&(runaderegval.IPINTLVL_VAL_RW8U));
	ReadAde1byte(aderegaddr[VPEAK_R8U],(uint8 *)&(runaderegval.VPEAK_VAL_R8U));
	ReadAde1byte(aderegaddr[IPEAK_R8U],(uint8 *)&(runaderegval.IPEAK_VAL_R8U));
	ReadAde1byte(aderegaddr[GAIN_RW8U],(uint8 *)&(runaderegval.GAIN_VAL_RW8U));

	ReadAde2byte(aderegaddr[AVRMSGAIN_RW12S],(uint16 *)&(runaderegval.AVRMSGAIN_VAL_RW12S));
	ReadAde2byte(aderegaddr[BVRMSGAIN_RW12S],(uint16 *)&(runaderegval.BVRMSGAIN_VAL_RW12S));
	ReadAde2byte(aderegaddr[CVRMSGAIN_RW12S],(uint16 *)&(runaderegval.CVRMSGAIN_VAL_RW12S));
	ReadAde2byte(aderegaddr[AIGAIN_RW12S],(uint16 *)&(runaderegval.AIGAIN_VAL_RW12S));
	ReadAde2byte(aderegaddr[BIGAIN_RW12S],(uint16 *)&(runaderegval.BIGAIN_VAL_RW12S));
	ReadAde2byte(aderegaddr[CIGAIN_RW12S],(uint16 *)&(runaderegval.CIGAIN_VAL_RW12S));
	ReadAde2byte(aderegaddr[AWG_RW12S],(uint16 *)&(runaderegval.AWG_VAL_RW12S));
	ReadAde2byte(aderegaddr[BWG_RW12S],(uint16 *)&(runaderegval.BWG_VAL_RW12S));
	ReadAde2byte(aderegaddr[CWG_RW12S],(uint16 *)&(runaderegval.CWG_VAL_RW12S));
	ReadAde2byte(aderegaddr[AVARG_RW12S],(uint16 *)&(runaderegval.AVARG_VAL_RW12S));
	ReadAde2byte(aderegaddr[BVARG_RW12S],(uint16 *)&(runaderegval.BVARG_VAL_RW12S));
	ReadAde2byte(aderegaddr[CVARG_RW12S],(uint16 *)&(runaderegval.CVARG_VAL_RW12S));
	ReadAde2byte(aderegaddr[AVAG_RW12S],(uint16 *)&(runaderegval.AVAG_VAL_RW12S));
	ReadAde2byte(aderegaddr[BVAG_RW12S],(uint16 *)&(runaderegval.BVAG_VAL_RW12S));
	ReadAde2byte(aderegaddr[CVAG_RW12S],(uint16 *)&(runaderegval.CVAG_VAL_RW12S));

	ReadAde2byte(aderegaddr[AVRMSOS_RW12S],(uint16 *)&(runaderegval.AVRMSOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[BVRMSOS_RW12S],(uint16 *)&(runaderegval.BVRMSOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[CVRMSOS_RW12S],(uint16 *)&(runaderegval.CVRMSOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[AIRMSOS_RW12S],(uint16 *)&(runaderegval.AIRMSOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[BIRMSOS_RW12S],(uint16 *)&(runaderegval.BIRMSOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[CIRMSOS_RW12S],(uint16 *)&(runaderegval.CIRMSOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[AWATTOS_RW12S],(uint16 *)&(runaderegval.AWATTOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[BWATTOS_RW12S],(uint16 *)&(runaderegval.BWATTOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[CWATTOS_RW12S],(uint16 *)&(runaderegval.CWATTOS_VAL_RW12S));
	ReadAde2byte(aderegaddr[AVAROS_RW12S],(uint16 *)&(runaderegval.AVAROS_VAL_RW12S));
	ReadAde2byte(aderegaddr[BVAROS_RW12S],(uint16 *)&(runaderegval.BVAROS_VAL_RW12S));
	ReadAde2byte(aderegaddr[CVAROS_RW12S],(uint16 *)&(runaderegval.CVAROS_VAL_RW12S));

	ReadAde1byte(aderegaddr[APHCAL_RW7S],(uint8 *)&(runaderegval.APHCAL_VAL_RW7S));
	ReadAde1byte(aderegaddr[BPHCAL_RW7S],(uint8 *)&(runaderegval.BPHCAL_VAL_RW7S));
	ReadAde1byte(aderegaddr[CPHCAL_RW7S],(uint8 *)&(runaderegval.CPHCAL_VAL_RW7S));

	ReadAde1byte(aderegaddr[WDIV_RW8U],(uint8 *)&(runaderegval.WDIV_VAL_RW8U));
	ReadAde1byte(aderegaddr[VARDIV_RW8U],(uint8 *)&(runaderegval.VARDIV_VAL_RW8U));
	ReadAde1byte(aderegaddr[VADIV_RW8U],(uint8 *)&(runaderegval.VADIV_VAL_RW8U));

	ReadAde2byte(aderegaddr[APCFNUM_RW16U],(uint16 *)&(runaderegval.APCFNUM_VAL_RW16U));
	ReadAde2byte(aderegaddr[APCFDEN_RW12U],(uint16 *)&(runaderegval.APCFDEN_VAL_RW12U));
	ReadAde2byte(aderegaddr[VARCFNUM_RW16U],(uint16 *)&(runaderegval.VARCFNUM_VAL_RW16U));
	ReadAde2byte(aderegaddr[VARCFDEN_RW12U],(uint16 *)&(runaderegval.VARCFDEN_VAL_RW12U));

	ReadAde1byte(aderegaddr[CHKSUM_R8U],(uint8 *)&(runaderegval.CHKSUM_VAL_R8U));
	ReadAde1byte(aderegaddr[VERSION_R8U],(uint8 *)&(runaderegval.VERSION_VAL_R8U));
}
void WriteConfig(void)//ADE初始化
{
	runaderegval.APCFNUM_VAL_RW16U=adeburnparm.APCFNUM;
	runaderegval.APCFDEN_VAL_RW12U=adeburnparm.APCFDEN;
	runaderegval.VARCFNUM_VAL_RW16U=adeburnparm.VARCFNUM;	
	runaderegval.VARCFDEN_VAL_RW12U=adeburnparm.VARCFDEN;
	runaderegval.WDIV_VAL_RW8U=adeburnparm.WDIV;
	runaderegval.VARDIV_VAL_RW8U=adeburnparm.VARDIV;
	runaderegval.VADIV_VAL_RW8U=adeburnparm.VADIV;
	runaderegval.MMODE_VAL_RW8U=adeburnparm.MMODE;
	runaderegval.OPMODE_VAL_RW8U=adeburnparm.OPMODE;
	runaderegval.WAVMODE_VAL_RW8U=adeburnparm.WAVMODE;
	runaderegval.COMPMODE_VAL_RW8U=adeburnparm.COMPMODE;
		
	WriteAde2byte((aderegaddr[APCFDEN_RW12U])|0x80,runaderegval.APCFDEN_VAL_RW12U);//1978
	WriteAde2byte((aderegaddr[VARCFDEN_RW12U])|0x80,runaderegval.VARCFDEN_VAL_RW12U);//1978
	WriteAde2byte((aderegaddr[APCFNUM_RW16U])|0x80,runaderegval.APCFNUM_VAL_RW16U);
	WriteAde2byte((aderegaddr[VARCFNUM_RW16U])|0x80,runaderegval.VARCFNUM_VAL_RW16U);	
	WriteAde1byte((aderegaddr[WDIV_RW8U])|0x80,runaderegval.WDIV_VAL_RW8U);
	WriteAde1byte((aderegaddr[VARDIV_RW8U])|0x80,runaderegval.VARDIV_VAL_RW8U);
	WriteAde1byte((aderegaddr[VADIV_RW8U])|0x80,runaderegval.VADIV_VAL_RW8U);
	WriteAde1byte((aderegaddr[MMODE_RW8U])|0x80,runaderegval.MMODE_VAL_RW8U);//0xfc
	WriteAde1byte((aderegaddr[OPMODE_RW8U])|0x80,runaderegval.OPMODE_VAL_RW8U);
	WriteAde1byte((aderegaddr[WAVMODE_RW8U])|0x80,runaderegval.WAVMODE_VAL_RW8U);
	WriteAde1byte((aderegaddr[COMPMODE_RW8U])|0x80,runaderegval.COMPMODE_VAL_RW8U);

	WriteAde3byte((aderegaddr[MASK_RW24U])|0x80,0x00);
}
void Write_Ade_Reg_Val(void)//写全部参数到ADE7758
{
	WriteUI_Gain();
	WriteUI_Os();
	WriteWatVa_Gain();
	WriteVar_Gain();
	WriteWatVarVa_Ph();
	WriteWatVar_Os();
	WriteConfig();
}
void RelocateBurnParmSub(void)
{
	adeburnparm.APCFNUM=0;
	adeburnparm.VARCFNUM=0;
	adeburnparm.VARCFNUM=0;
	adeburnparm.OPMODE=0x04;
	adeburnparm.MMODE=0xfc;
	adeburnparm.WAVMODE=0;
	adeburnparm.COMPMODE=0x1c;
	adeburnparm.LCYCMODE=0x40;
	adeburnparm.MASK=0x204;
	//100V,5A
	if((wpd800_cfg.Wpd_Param.bURating==0x00)&&(wpd800_cfg.Wpd_Param.bIRating==0x00))
	{
		adeburnparm.APCFDEN=2062;	
		adeburnparm.VARCFDEN=2062;
		adeburnparm.WDIV=0;
		adeburnparm.VARDIV=0;
		adeburnparm.VADIV=0;
	}
	//400V 5A
	else if((wpd800_cfg.Wpd_Param.bURating==0x01)&&(wpd800_cfg.Wpd_Param.bIRating==0x00))
	{
		adeburnparm.APCFDEN=1598;	
		adeburnparm.VARCFDEN=1598;
		adeburnparm.WDIV=0;
		adeburnparm.VARDIV=0;
		adeburnparm.VADIV=0;		
	}
	//100V,1A
	else if((wpd800_cfg.Wpd_Param.bURating==0x00)&&(wpd800_cfg.Wpd_Param.bIRating==0x01))
	{
		adeburnparm.APCFDEN=2103;	
		adeburnparm.VARCFDEN=2103;
		adeburnparm.WDIV=12;
		adeburnparm.VARDIV=12;
		adeburnparm.VADIV=12;
	}	
	//400V,5A
	else if((wpd800_cfg.Wpd_Param.bURating==0x01)&&(wpd800_cfg.Wpd_Param.bIRating==0x01))
	{
		adeburnparm.APCFDEN=1811;	
		adeburnparm.VARCFDEN=1811;
		adeburnparm.WDIV=0;
		adeburnparm.VARDIV=0;
		adeburnparm.VADIV=0;
	}			
	//100V,5A
	else
	{
		adeburnparm.APCFDEN=2062;	
		adeburnparm.VARCFDEN=2062;
		adeburnparm.WDIV=0;
		adeburnparm.VARDIV=0;
		adeburnparm.VADIV=0;
	}		
}
void get_ade_default_parm(void)
{
	adeburnparm.IA_RMS_GAIN=0;
	adeburnparm.IB_RMS_GAIN=0;
	adeburnparm.IC_RMS_GAIN=0;
	adeburnparm.UA_RMS_GAIN=0;
	adeburnparm.UB_RMS_GAIN=0;
	adeburnparm.UC_RMS_GAIN=0;
	adeburnparm.AWAT_GAIN=0;
	adeburnparm.BWAT_GAIN=0;
	adeburnparm.CWAT_GAIN=0;
	adeburnparm.AVAR_GAIN=0;
	adeburnparm.BVAR_GAIN=0;
	adeburnparm.CVAR_GAIN=0;
	adeburnparm.AVA_GAIN=0;
	adeburnparm.BVA_GAIN=0;
	adeburnparm.CVA_GAIN=0;
	adeburnparm.IA_RMS_OS=0;
	adeburnparm.IB_RMS_OS=0;
	adeburnparm.IC_RMS_OS=0;
	adeburnparm.UA_RMS_OS=0;
	adeburnparm.UB_RMS_OS=0;
	adeburnparm.UC_RMS_OS=0;
	adeburnparm.AWAT_OS=0;
	adeburnparm.BWAT_OS=0;
	adeburnparm.CWAT_OS=0;
	adeburnparm.AVAR_OS=0;
	adeburnparm.BVAR_OS=0;
	adeburnparm.CVAR_OS=0;
	adeburnparm.APCFNUM=0;
	adeburnparm.VARCFNUM=0;
	adeburnparm.VARCFNUM=0;
	adeburnparm.AWATVARVA_PH=0;
	adeburnparm.BWATVARVA_PH=0;
	adeburnparm.CWATVARVA_PH=0;
	adeburnparm.OPMODE=0x04;
	adeburnparm.MMODE=0xfc;
	adeburnparm.WAVMODE=0;
	adeburnparm.COMPMODE=0x1c;
	adeburnparm.LCYCMODE=0x40;
	adeburnparm.MASK=0x204;
	//100V,5A
	if((wpd800_cfg.Wpd_Param.bURating==0x00)&&(wpd800_cfg.Wpd_Param.bIRating==0x00))
	{
		adeburnparm.APCFDEN=2062;	
		adeburnparm.VARCFDEN=2062;
		adeburnparm.WDIV=0;
		adeburnparm.VARDIV=0;
		adeburnparm.VADIV=0;
	}
	//400V 5A
	else if((wpd800_cfg.Wpd_Param.bURating==0x01)&&(wpd800_cfg.Wpd_Param.bIRating==0x00))
	{
		adeburnparm.APCFDEN=1598;	
		adeburnparm.VARCFDEN=1598;
		adeburnparm.WDIV=0;
		adeburnparm.VARDIV=0;
		adeburnparm.VADIV=0;		
	}
	//100V,1A
	else if((wpd800_cfg.Wpd_Param.bURating==0x00)&&(wpd800_cfg.Wpd_Param.bIRating==0x01))
	{
		adeburnparm.APCFDEN=2103;	
		adeburnparm.VARCFDEN=2103;
		adeburnparm.WDIV=12;
		adeburnparm.VARDIV=12;
		adeburnparm.VADIV=12;
	}	
	//400V,5A
	else if((wpd800_cfg.Wpd_Param.bURating==0x01)&&(wpd800_cfg.Wpd_Param.bIRating==0x01))
	{
		adeburnparm.APCFDEN=1811;	
		adeburnparm.VARCFDEN=1811;
		adeburnparm.WDIV=0;
		adeburnparm.VARDIV=0;
		adeburnparm.VADIV=0;
	}			
	//100V,5A
	else
	{
		adeburnparm.APCFDEN=2062;	
		adeburnparm.VARCFDEN=2062;
		adeburnparm.WDIV=0;
		adeburnparm.VARDIV=0;
		adeburnparm.VADIV=0;
	}
}
void Read_Ade_Reg_Val(void)//将从EEPROM中读取放在adeburnparm的数值COPY到运行区runaderegval
{	
	runaderegval.AIGAIN_VAL_RW12S=adeburnparm.IA_RMS_GAIN;
	runaderegval.BIGAIN_VAL_RW12S=adeburnparm.IB_RMS_GAIN;
	runaderegval.CIGAIN_VAL_RW12S=adeburnparm.IC_RMS_GAIN;
	runaderegval.AVRMSGAIN_VAL_RW12S=adeburnparm.UA_RMS_GAIN;
	runaderegval.BVRMSGAIN_VAL_RW12S=adeburnparm.UB_RMS_GAIN;
	runaderegval.CVRMSGAIN_VAL_RW12S=adeburnparm.UC_RMS_GAIN;
	runaderegval.AWG_VAL_RW12S=adeburnparm.AWAT_GAIN;
	runaderegval.BWG_VAL_RW12S=adeburnparm.BWAT_GAIN;
	runaderegval.CWG_VAL_RW12S=adeburnparm.CWAT_GAIN;
	runaderegval.AVARG_VAL_RW12S=adeburnparm.AVAR_GAIN;
	runaderegval.BVARG_VAL_RW12S=adeburnparm.BVAR_GAIN;
	runaderegval.CVARG_VAL_RW12S=adeburnparm.CVAR_GAIN;
	runaderegval.AVAG_VAL_RW12S=adeburnparm.AVA_GAIN;
	runaderegval.BVAG_VAL_RW12S=adeburnparm.BVA_GAIN;
	runaderegval.CVAG_VAL_RW12S=adeburnparm.CVA_GAIN;
	runaderegval.AIRMSOS_VAL_RW12S=adeburnparm.IA_RMS_OS;
	runaderegval.BIRMSOS_VAL_RW12S=adeburnparm.IB_RMS_OS;
	runaderegval.CIRMSOS_VAL_RW12S=adeburnparm.IC_RMS_OS;
	runaderegval.AVRMSOS_VAL_RW12S=adeburnparm.UA_RMS_OS;
	runaderegval.BVRMSOS_VAL_RW12S=adeburnparm.UB_RMS_OS;
	runaderegval.CVRMSOS_VAL_RW12S=adeburnparm.UC_RMS_OS;
	runaderegval.AWATTOS_VAL_RW12S=adeburnparm.AWAT_OS;
	runaderegval.BWATTOS_VAL_RW12S=adeburnparm.BWAT_OS;
	runaderegval.CWATTOS_VAL_RW12S=adeburnparm.CWAT_OS;
	runaderegval.AVAROS_VAL_RW12S=adeburnparm.AVAR_OS;
	runaderegval.BVAROS_VAL_RW12S=adeburnparm.BVAR_OS;
	runaderegval.CVAROS_VAL_RW12S=adeburnparm.CVAR_OS;
	runaderegval.APHCAL_VAL_RW7S=adeburnparm.AWATVARVA_PH;
	runaderegval.BPHCAL_VAL_RW7S=adeburnparm.BWATVARVA_PH;
	runaderegval.CPHCAL_VAL_RW7S=adeburnparm.CWATVARVA_PH;
	runaderegval.WDIV_VAL_RW8U=adeburnparm.WDIV;
	runaderegval.VARDIV_VAL_RW8U=adeburnparm.VARDIV;
	runaderegval.VADIV_VAL_RW8U=adeburnparm.VADIV;
	runaderegval.APCFNUM_VAL_RW16U=adeburnparm.APCFNUM;
	runaderegval.APCFDEN_VAL_RW12U=adeburnparm.APCFDEN;
	runaderegval.VARCFNUM_VAL_RW16U=adeburnparm.VARCFNUM;
	runaderegval.VARCFDEN_VAL_RW12U=adeburnparm.VARCFDEN;	
}
bool Burn_Ade_Parm(void)//从参数区固化到EEPROM
{
	CrcMake((BYTE *)&adeburnparm,ADE_PARM_SIZE-4);
	return Eeprom_Write((BYTE *)&adeburnparm,EPROM_ADEPARM_ZONE,ADE_PARM_SIZE,WPD_NO_CHECK);	
}
bool Read_Ade_Burn_Parm(void)//从EEPROM读取参数到参数区
{
	bool status=FALSE;

	if(Eeprom_Read((BYTE *)&adeburnparm,EPROM_ADEPARM_ZONE,ADE_PARM_SIZE))
	{
		if(CrcOk((BYTE *)&adeburnparm,ADE_PARM_SIZE-4))
		{
			RelocateBurnParmSub();
			Read_Ade_Reg_Val();
			status=TRUE;			
		}
	}
	return status;
}
void ADEYSSUB(void)
{
	uint32 AdeCounter,adett0;

	AdeCounter = dTCounter;	
	do
	{
		adett0 = dTCounter - AdeCounter;				
	}while(adett0 < 1200);
}
//上电初始化,从EEPROM读取参数到参数区adeburnparm,从adeburnparm区COPY到运行区runaderegval
//再写到ADE7758,最后将参数读到运行区runaderegval.
void AdeInit(void) 
{
	if(Read_Ade_Burn_Parm())
	{		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -