📄 kwhkvarh_count.h
字号:
// dian liang mo kuai 电量模块 包括电量,用电量模块ppppp
unsigned char num_quadrant_d;
unsigned char quadrant_use_d;
void int12set()
{
QUADRANT=1;
num_quadrant_d=0;// continue num
quadrant_use_d=1;// ready status
pindir_pp=0;
pindir_qp=0;
ifsr10=0;
ifsr11=0;
int1ic=0x7;
int2ic=0x7;
}
// ZHONG DUAN CHENG XU 有功中断kkkkl
#pragma INTERRUPT int_pin_aout_4x
void int_pin_aout_4x()
{
unsigned char a1,value,value1;
value=0xf0;
value1=0xf0;
//add watch dog
pulse_delaysecond_7758=0;// fang qian dong
num_watch=num_watch+1;
if(num_watch>249)
pin_dog=~pin_dog;
// xiang xian--------------------------------->start
// xiang xian------------------>start
a1=0;
if((0x80&status_5460_0)==0x00)// direction kwh
a1=10;
if((0x8&status_5460_0)==0x00) // direction kvarh
a1=1+a1;
switch(a1)
{
case 11: // i1象限5555555555555555
a1=1;
break;
case 00: // i3象限55555555555555555555
a1=3;
break;
case 01: // 2
a1=2;
break;
case 10: // i4象限5555555555555555555555
a1=4;
break;
}
if(0==pin_pp)
{
if(quadrant_use_d==a1)
{
num_quadrant_d=num_quadrant_d+1;
if(num_quadrant_d>=4)
{
QUADRANT=a1;
num_quadrant_d=0;
}
}
else
{
quadrant_use_d=a1;
num_quadrant_d=1;
}
// check
if((0==QUADRANT)||(QUADRANT>4))
QUADRANT=1;
// xiang xian------------------>end
// you gong ------------------>start
if((0x80&status_5460_0)==0) // i1 zheng xiang
{
// mo chong------------>start
value=1;
// mo chong------------>end
// XU LIANG pulse ji shu qi
RCURRENT_MINUTE_KVA_F=RCURRENT_MINUTE_KVA_F+1;
// cuo feng xu liang pulse
RCURRENT_MINUTE_CUOFENG=RCURRENT_MINUTE_CUOFENG+1;
//A 正向kkkkl kwh--------->start
RKWH_F_COUNT=0x1ff&(RKWH_F_COUNT+1);// i 511---4s <4s
if(RKWH_F_COUNT>=mochong_add1)
{
RKWH_F_COUNT=RKWH_F_COUNT-mochong_add1;
RFLAG_KWH_F_ADD=1;
}
//A 正向kkkkl kwh--------->end
}
else
{//a 反向kkkk---------------------------------->start
// mo chong---------------->start
value1=3;
// mo chong---------------->end
// XU LIANG pluse add
RCURRENT_MINUTE_KVA_R=RCURRENT_MINUTE_KVA_R+1;
//a 反向kkkk kwh--------->start
RKWH_R_COUNT=0x1ff&(RKWH_R_COUNT+1);
if(RKWH_R_COUNT>=mochong_add1)
{
RKWH_R_COUNT=RKWH_R_COUNT-mochong_add1;
RFLAG_KWH_R_ADD=1;
}
if((RAM[R_KWHMODE_F]==2)||(RAM[R_KWHMODE_F]==0))
{ // mo chong------------>start// fanshi 1--zhen fan
value=1;
// mo chong------------>end
// XU LIANG pulse ji shu qi
RCURRENT_MINUTE_KVA_F=RCURRENT_MINUTE_KVA_F+1;
// cuo feng xu liang pulse
RCURRENT_MINUTE_CUOFENG=RCURRENT_MINUTE_CUOFENG+1;
//A 正向kkkkl kwh--------->start
RKWH_F_COUNT=0x1ff&(RKWH_F_COUNT+1);// i 511---4s <4s
if(RKWH_F_COUNT>=mochong_add1)
{
RKWH_F_COUNT=RKWH_F_COUNT-mochong_add1;
RFLAG_KWH_F_ADD=1;
}
//A 正向kkkkl kwh--------->end
}
}
//a 反向kkkk kwh--------->end
// mo chong---------------->start
if((RAM[R_PLUSEMODE]==value)||(RAM[R_PLUSEMODE]==value1))
{
pulse1set;
time_pulse1=800;
}
if((RAM[R_PLUSEMODE+1]==value)||(RAM[R_PLUSEMODE+1]==value1))
{
pulse2set;
time_pulse2=800;
}
if((RAM[R_PLUSEMODE+2]==value)||(RAM[R_PLUSEMODE+2]==value1))
{
pulse3set;
time_pulse3=800;
}
if((RAM[R_PLUSEMODE+3]==value)||(RAM[R_PLUSEMODE+3]==value1))
{
pulse4set;
time_pulse4=800;
}
// mo chong---------------->end
}
}
// ZHONG DUAN CHENG XU 无功中断qqqqqqq
#pragma INTERRUPT int_pin_rout_4x
void int_pin_rout_4x()
{unsigned char a1,value,value1,value2;
unsigned char f_kvarh_use,r_kvarh_use;
f_kvarh_use=0;
r_kvarh_use=0;
value=0xf0;// f_ kvarh pulse p
value1=0xf0;// four quandrant kvarh pulse
value2=0xf0;//negtive
//add watch dog
pulse_delaysecond_7758=0;// fang qian dong
num_watch=num_watch+1;
if(num_watch>249)
pin_dog=~pin_dog;
// xiang xian--------------------------------->start
a1=0;
if((0x80&status_5460_0)==0x00) // direction kwh
a1=10;
if((0x8&status_5460_0)==0x00) // direction kvarh
a1=1+a1;
switch(a1)
{
case 11: // 1象限5555555555555555
a1=1;
break;
case 00: // 3象限55555555555555555555
a1=3;
break;
case 01: // 2
a1=2;
break;
case 10: // 4象限5555555555555555555555
a1=4;
break;
}
if(0==pin_qp)
{
if(quadrant_use_d==a1)
{
num_quadrant_d=num_quadrant_d+1;
if(num_quadrant_d>=4)
{
QUADRANT=a1;
num_quadrant_d=0;
}
}
else
{
quadrant_use_d=a1;
num_quadrant_d=1;
}
// check
if((0==QUADRANT)||(QUADRANT>4))
QUADRANT=1;
// xiang xian--------------------------------->end
// kva kwh mochong-------------------------->start
switch(QUADRANT)
{
case 1: // i1象限11111111111
// mo chong------------>start
value1=9;
// mo chong------------>end
// XULIANG---1
RCURRENT_MINUTE_KVAR_1=RCURRENT_MINUTE_KVAR_1+1;
// DIAN LIANG
// i1 xian xian dian liang---------->start
RKVARH_1_COUNT=0x1ff&(RKVARH_1_COUNT+1);
if(RKVARH_1_COUNT>=mochong_add1)
{
RKVARH_1_COUNT=RKVARH_1_COUNT-mochong_add1;
RFLAG_KVARH_1_ADD=1;
}
// i1 xian xian dian liang---------->end
if((RAM[R_KVARHMODE_F]<3)||(RAM[R_KVARHMODE_F]==5)||(RAM[R_KVARHMODE_F]==6))
f_kvarh_use=1;
if((RAM[R_KVARHMODE_R]==3)||(RAM[R_KVARHMODE_R]==6))
r_kvarh_use=1;
break;
case 3: // i3象限11111111
// XULIANG 3 ji shu qi add
RCURRENT_MINUTE_KVAR_3=RCURRENT_MINUTE_KVAR_3+1;
// DIAN LIANG 3 diang liang-------------------------->start
// mo chong--------------->start
value1=0x11;
// mo chong--------------->end
// diang liang-------------->start
RKVARH_3_COUNT=0x1ff&(RKVARH_3_COUNT+1);
if(RKVARH_3_COUNT>=mochong_add1)
{
RKVARH_3_COUNT=RKVARH_3_COUNT-mochong_add1;
RFLAG_KVARH_3_ADD=1;
}
// diang liang-------------->end
// DIAN LIANG 3 diang liang-------------------------->end
if((RAM[R_KVARHMODE_F]==3)||(RAM[R_KVARHMODE_F]==6))
f_kvarh_use=1;
if((RAM[R_KVARHMODE_R]==0)||(RAM[R_KVARHMODE_R]==2)||(RAM[R_KVARHMODE_R]==6))
r_kvarh_use=1;
break;
case 02: // i2象限qqqqqqqqq
// XULIANG 2 pulse add
RCURRENT_MINUTE_KVAR_2=RCURRENT_MINUTE_KVAR_2+1;
// DIAN LIANG 2 dian liang------------------->start
// mo chong------------>start
value1=0x10;
// mo chong------------>end
// diang liang------------>start
RKVARH_2_COUNT=0x1ff&(RKVARH_2_COUNT+1);
if(RKVARH_2_COUNT>=mochong_add1)
{
RKVARH_2_COUNT=RKVARH_2_COUNT-mochong_add1;
RFLAG_KVARH_2_ADD=1;
}
// diang liang------------>end
// DIAN LIANG 2 dian liang------------------->end
if((RAM[R_KVARHMODE_F]==3)||(RAM[R_KVARHMODE_F]==0)||(RAM[R_KVARHMODE_F]==6))
f_kvarh_use=1;
if((RAM[R_KVARHMODE_R]==2)||(RAM[R_KVARHMODE_R]==6))
r_kvarh_use=1;
break;
case 04: // // i4象限qqqqq
// XULIANG pulse (4)add
RCURRENT_MINUTE_KVAR_4=RCURRENT_MINUTE_KVAR_4+1;
// DIAN LIANG4----------------------------------->start
// mo chong------------>start
value1=0x12;
// mo chong------------>end
// i4 diang liang --------->start
RKVARH_4_COUNT=RKVARH_4_COUNT+1;
if(RKVARH_4_COUNT>=mochong_add1)
{
RKVARH_4_COUNT=RKVARH_4_COUNT-mochong_add1;
RFLAG_KVARH_4_ADD=1;
}
// i4 diang liang ---------->end
// DIAN LIANG4----------------------------------->end
if((RAM[R_KVARHMODE_F]==1)||(RAM[R_KVARHMODE_F]==2)||(RAM[R_KVARHMODE_F]==6))
f_kvarh_use=1;
if((RAM[R_KVARHMODE_R]==0)||(RAM[R_KVARHMODE_R]==1)
||(RAM[R_KVARHMODE_R]==3)||(RAM[R_KVARHMODE_R]==5)
||(RAM[R_KVARHMODE_R]==6))
r_kvarh_use=1;
break;
}
if(f_kvarh_use==1)
{
f_kvarh_use=0;
// 2正向无功you zu he ding ------------------>start
//XULIANG zheng xiang
RCURRENT_MINUTE_KVAR_F=RCURRENT_MINUTE_KVAR_F+1;
// dian liang-------------------->start
// mo chong-------->start
value=2;
// mo chong-------->end
// diang liang f-------->start
RKVARH_F_COUNT=0x1ff&(RKVARH_F_COUNT+1);
if((RKVARH_F_COUNT>=mochong_add1)&&(RFLAG_KVARH_F_ADD==0))
{
RKVARH_F_COUNT=RKVARH_F_COUNT-mochong_add1;
RFLAG_KVARH_F_ADD=1;
}
// diang liang-------->end
}
// dian liang-f----------------------->end
// 2正向无功you zu he ding ------------------>end
if(r_kvarh_use==1)
{
r_kvarh_use=0;
// i4反向无功you zu he ding------------------------------>start
// mo chong--------------->start
value2=4;
// mo chong--------------->end
//XULIANG pulse ji suan
RCURRENT_MINUTE_KVAR_R=RCURRENT_MINUTE_KVAR_R+1;
// dian liang zhen xiang--------------------->start
RKVARH_R_COUNT=0x1ff&(RKVARH_R_COUNT+1);
if((RKVARH_R_COUNT>=mochong_add1)&&(RFLAG_KVARH_R_ADD==0))
{
RKVARH_R_COUNT=RKVARH_R_COUNT-mochong_add1;
RFLAG_KVARH_R_ADD=1;
}
}
// dian liang zhen xiang--------------------->end
// i4反向无功you zu he ding------------------------------>end
// kva kwh mochong----------------------------------------------------------------->end
// mo chong---------------->start
if((RAM[R_PLUSEMODE]==value)||(RAM[R_PLUSEMODE]==value1)||(RAM[R_PLUSEMODE]==value2))
{
pulse1set;
time_pulse1=800;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -