📄 ade7758_dx.c.svn-base
字号:
}
key_z = 0;
for (phase=0;phase<3;phase++) //第一步:去除偏移
{
if (phase==0){reg1 = AIRMS; reg2 = AIRMSOS;curr[8]=0x41;}
if (phase==1){reg1 = BIRMS; reg2 = BIRMSOS; curr[8]=0x42;}
if (phase==2){reg1 = CIRMS; reg2 = CIRMSOS; curr[8]=0x43;}
spi_buf[0] = 0; //恢复为初始状态
spi_buf[1] = 0;
Write_ADE7758(reg2,2);
temp = 0;
bs = 1;
key_z = 0;
while (key_z != KEY3)
{
key_z = 0;
while (key_z == 0)
{
Process_PCF8574();
Clrwdt();
ww = Read_Reg(reg1);
ww = (15*ww*1000)/Current_AD_Ref;
sum = ww;
Xiao_Biao2();
}
if (key_z == KEY4)
{
if (bs==1) bs = 10;
else if (bs==10) bs = 20;
else if (bs==20) bs = 1;
}
if (key_z == KEY1)
{
if(bs==1)
{
temp += 1*bs;
}
else
{
temp += 2*bs;
}
}
if (key_z == KEY2)
{
if(bs==1)
{
temp -= 1*bs;
}
else
{
temp -= 2*bs;
}
}
Save_Reg(temp,reg2,(phase*2+IRMSOS_ADDR)); //保存IRMSOS值
}
}
//---第二步:调整增益------
/* 理论显示 1.50000A
*----------------------------- */
Beep(1000);
Beep(1000);
Xiao_Biao12(); //显示电流 2步 相
while(key_z != KEY4) {Process_PCF8574();
Clrwdt();}
key_z = 0;
for (phase=0;phase<3;phase++)
{
if (phase==0){reg1 = AIRMS; reg2 = AIGAIN;curr[8]=0x41;}
if (phase==1){reg1 = BIRMS; reg2 = BIGAIN; curr[8]=0x42;}
if (phase==2){reg1 = CIRMS; reg2 = CIGAIN; curr[8]=0x43;}
spi_buf[0] = 0; //恢复为初始状态
spi_buf[1] = 0;
Write_ADE7758(reg2,2);
temp = 0;
bs = 1;
key_z = 0;
while (key_z != KEY3)
{
key_z = 0;
while (key_z == 0)
{
Process_PCF8574();
Clrwdt();
ww = Read_Reg(reg1);
ww = (15*ww*1000)/Current_AD_Ref;
sum = ww;
Xiao_Biao2();
}
if (key_z == KEY4)
{
if (bs==1) bs = 10;
else if (bs==10) bs = 20;
else if (bs==20) bs = 1;
}
if (key_z == KEY1)
{
if(bs==1)
{
temp += 1*bs;
}
else
{
temp += 2*bs;
}
}
if (key_z == KEY2)
{
if(bs==1)
{
temp -= 1*bs;
}
else
{
temp -= 2*bs;
}
}
Save_Reg(temp,reg2,(phase*2+IGAIN_ADDR)); //保存IGAIN值
}
}
Beep(1000);
/**********************
**名称: 标定电压
**第一步:去除偏移
** 1、测试条件:C相电压200V;三相电流0A;三相功率因数1.0
** 2、测试条件:AB相电压200V;三相电流0A;三相功率因数1.0
**第二步:调整增益
** 测试条件:三相电压200V;三相电流0A;三相功率因数1.0
***********************/
//------------------
//理论显示 0.00000V
//------------------
Beep(1000);
Dian_Ya11(); //显示电压 1步
while(key_z != KEY4) {Process_PCF8574(); Delay_Ms_Stop(100); Clrwdt();}
key_z = 0;
for (phase=0;phase<3;phase++) //第一步:去除偏移
{
if (phase==0){reg1 = AVRMS; reg2 = AVRMSOS; curr[8]=0x41;}
if (phase==1){reg1 = BVRMS; reg2 = BVRMSOS; curr[8]=0x42;}
if (phase==2){reg1 = CVRMS; reg2 = CVRMSOS; curr[8]=0x43;}
if (phase==2)
{
Beep(500); Change_Vol();
while(key_z != KEY4) {Process_PCF8574(); Delay_Ms_Stop(100); Clrwdt();}
key_z = 0; //等待切换电压
}
spi_buf[0] = 0; //恢复为初始状态
spi_buf[1] = 0;
Write_ADE7758(reg2,2);
temp = 0;
bs = 1;
key_z = 0;
while (key_z != KEY3)
{
key_z = 0;
while (key_z == 0)
{
Process_PCF8574();
Clrwdt();
ww = Read_Reg(reg1);
ww = (220*ww*10000)/Voltage_AD_Ref;
sum = ww;
Xiao_Biao2();
}
if (key_z == KEY4)
{
if (bs==1) bs = 10;
else if (bs==10) bs = 20;
else if (bs==20) bs = 1;
}
if (key_z == KEY1)
{
if(bs==1)
{
temp += 0.5*bs;
}
else
{
temp += 1*bs;
}
}
if (key_z == KEY2)
{
if(bs==1)
{
temp -= 0.5*bs;
}
else
{
temp -= 1*bs;
}
}
Save_Reg(temp,reg2,(phase*2+VRMSOS_ADDR)); //保存VRMSOS值
}
}
//---第二步:调整增益------
//理论显示 220.00V
//-------------------------
Beep(1000);
Dian_Ya2(); //显示电压 2步
while(key_z != KEY4) {Process_PCF8574();
Clrwdt();}
key_z = 0;
for (phase=0;phase<3;phase++)
{
if (phase==0){reg1 = AVRMS; reg2 = AVRMSGAIN; curr[8]=0x41; }
if (phase==1){reg1 = BVRMS; reg2 = BVRMSGAIN; curr[8]=0x42;}
if (phase==2){reg1 = CVRMS; reg2 = CVRMSGAIN; curr[8]=0x43;}
spi_buf[0] = 0; //恢复为初始状态
spi_buf[1] = 0;
Write_ADE7758(reg2,2);
temp = 0;
bs = 1;
key_z = 0;
while (key_z != KEY3)
{
key_z = 0;
while (key_z == 0)
{
Process_PCF8574();
Clrwdt();
ww = Read_Reg(reg1);
ww = (220*ww*10000)/Voltage_AD_Ref;
sum = ww;
;
Dian_Ya();
}
if (key_z == KEY4)
{
if (bs==1) bs = 10;
else if (bs==10) bs = 20;
else if (bs==20) bs = 1;
}
if (key_z == KEY1)
{
if(bs==1)
{
temp += 0.5*bs;
}
else
{
temp += 1*bs;
}
}
if (key_z == KEY2)
{
if(bs==1)
{
temp -= 0.5*bs;
}
else
{
temp -= 1*bs;
}
}
Save_Reg(temp,reg2,(phase*2+VRMSGAIN_ADDR)); //保存VRMSGAIN值
}
}
Beep(1000);
/**********************
**名称: 标定有功电量
**第一步:条件:220V,1.5A,COS0
***********************/
Beep(1000);
YG1(); //显示 有功电能 1步
while(key_z != KEY4) {Process_PCF8574();
//Delay_Ms_Stop(100);
Clrwdt();}
key_z = 0;
spi_buf[0] = 0; //恢复为初始状态
spi_buf[1] = 0x3F;
Write_ADE7758(APCFDEN,2);
spi_buf[0] = 0;
spi_buf[1] = 0x0A;
Write_ADE7758(APCFNUM,2);
for (phase=0;phase<3;phase++)
{
if (phase==0){reg1 = AWG; reg2 = 0x04; curr[8]=0x41;}
if (phase==1){reg1 = BWG; reg2 = 0x08; curr[8]=0x42;}
if (phase==2){reg1 = CWG; reg2 = 0x10; curr[8]=0x43;}
spi_buf[0] = 0; //恢复为初始状态
spi_buf[1] = 0;
Write_ADE7758(reg1,2);
spi_buf[0] = reg2; //3P4L
Write_ADE7758(COMPMODE,1);
if (phase==0)
{
sum = Read_Period(0,2);
if (sum == 0) sum = 1;
temp = 3409 * 0x3F / sum;///1/3409=3200*1.5*220/1000/3600
if (temp>0xFFF) temp = 0xFFF; //12bit
Save_Reg(temp,APCFDEN,APCFDEN_ADDR); //保存APCFDEN值
}
temp = 0;
bs = 1;
key_z = 0;
while (key_z != KEY3)
{
key_z = 0;
while (key_z == 0)
{
Process_PCF8574();
Clrwdt();
sum = Read_Period(0,2);
Dian_Neng();
}
if (key_z == KEY4)
{
if (bs==1) bs = 10;
else if (bs==10) bs = 20;
else if (bs==20) bs = 1;
}
if (key_z == KEY1)
{
if(bs==1)
{
temp += 1*bs;
}
else
{
temp += 2*bs;
}
}
if (key_z == KEY2)
{
if(bs==1)
{
temp -= 1*bs;
}
else
{
temp -= 2*bs;
}
}
Save_Reg(temp,reg1,(phase*2+WG_ADDR)); //保存WG值
}
}
/**********************
**名称: 标定有功电量
**第二步:条件:220V,1.5A,COS=0.8C
***********************/
Beep(1000);
YG2(); //显示 有功电能 2步
while(key_z != KEY4) {Process_PCF8574(); Delay_Ms_Stop(100); Clrwdt();}
key_z = 0;
for (phase=0;phase<3;phase++)
{
if (phase==0){reg1 = APHCAL; reg2 = 0x04; curr[8]=0x41;}
if (phase==1){reg1 = BPHCAL; reg2 = 0x08; curr[8]=0x42;}
if (phase==2){reg1 = CPHCAL; reg2 = 0x10; curr[8]=0x43;}
spi_buf[0] = 0; //恢复为初始状态
Write_ADE7758(reg1,1);
spi_buf[0] = reg2; //3P4L
Write_ADE7758(COMPMODE,1);
temp = 0;
bs = 1;
key_z = 0;
while (key_z != KEY3)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -