📄 status_check.h
字号:
unsigned char tongxun_use4851_second;// comm 485 1,comm 485 0 check
unsigned char tongxun_use4850_second;
unsigned char tongxun_useremote_second;// comm remote
void init_check()
{
check_point=0;// fen shi yong
time_check7758=0;// check 7758
num_check_485=0;// comm 485 1 send check use
num_check_485_0=0;// comm 485 0 send check use
num_check_remote=0;// comm remote send check use
}
void check_mode()
{unsigned char i,l;
static unsigned char g,g1,num7758m;
// 5460
// check_point++
if(g!=(RSOFT_RTC_SECOND&0xf0))// between 10 second
{
g=(RSOFT_RTC_SECOND&0xf0);
g1=1;
num7758m=num7758m+1;
if(num7758m>60)// check 60 num ----reset
{
num7758m=0;// total 60 num=0;
time_check7758=0;// the err num=0
}
}
if(g1==1)
{
check_point=check_point+1;// loop 1------42 ,,,0
if(check_point>42)
{
check_point=0;
g1=0;
}
switch(check_point)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:// block num=6 kwh kvarh check
for(i=0;i<4;i++)
{
if(0!=anquan_dianliang_jiuzhen(check_point*4+i))
dianliang_write(check_point*4+i);
}
break;
case 10: // l7758
time_check7758=check7758()+time_check7758;// err num
if(time_check7758>18) // err num>18
{
init_7758();
time_check7758=0;
}
break;
case 11:
//YONGHUHAO BIAOHAO ADDR
huifu_use_fm_fm1(R_YONGHUHAO_L, 18);
//ALARM
huifu_nobcd_fm_fm1(R_ALARMCONTROL_SPEEK1,6);
//ZHENG XIANG GONG LV SHANG XIAN
huifu_use_fm_fm1(R_KW_F_MAX,3);
huifu_use_fm_fm1(R_KW_R_MAX,3);
break;
case 12:// PRICE 1
huifu_use_fm_fm1(R_PRICE_NO1_1,36);
break;
case 13:
huifu_use_fm_fm1(R_PRICE_NO2_1,36);
break;
case 14:
huifu_use_fm_fm1(R_PRICE_NO3_1,36);
break;
case 15:
huifu_use_fm_fm1(R_PRICE_NO4_1,36);
break;
case 16:
huifu_use_fm_fm1(R_PRICE_NO5_1,36);
break;
case 17:
huifu_use_fm_fm1(R_ONUS_1,36);
break;
case 18:// NUM (10)=10*3 BYTE
huifu_use_fm_fm1(R_HOLIDAY1,30);
break;
case 19:
huifu_use_fm_fm1(R_HOLIDAY11,30);
break;
case 20:
huifu_use_fm_fm1(R_HOLIDAY21,30);
break;
case 21:
huifu_nobcd_fm_fm1(R_WORKOFFDAY,1);
huifu_use_fm_fm1(R_WORKOFFDAY_PRICE,1);
huifu_use_fm_fm1(R_CHAOBIAORI,2);
huifu_use_fm_fm1(R_CHAOBIAORI2,2); //--20081220-add--lzh----
huifu_use_fm_fm1(R_CHAOBIAORI3,2); //--20081220-add--lzh----
break;
case 29:
keydir_prog=0;
keydir_prog=0;
keydir_updisplay=0;
huifu_use_fm_fm1(R_HUACHA,1);
huifu_use_fm_fm1(R_XULIANGZHOUQI,1);
huifu_use_fm_fm1(R_PLUSEMODE,4);
huifu_use_fm_fm1(R_KWHMODE_F,1);
huifu_use_fm_fm1(R_KWHMODE_R,1);
huifu_use_fm_fm1(R_KVARHMODE_F,1);
huifu_use_fm_fm1(R_KVARHMODE_R,1);
huifu_use_fm_fm1(R_FREEZE_TIME,4);
break;
case 30:
huifu_use_fm_fm1(R_LOSTV_CONDITION,5);
// changed by zhanglong ---->start
huifu_use_fm_fm1(R_LOSTI_CONDITION,4);
// changed by zhanglong ---->end
huifu_use_fm_fm1(R_OVER_KW_CONDITION,4);
huifu_use_fm_fm1(R_OVER_KW_ABC_CONDITION,4);
huifu_use_fm_fm1(R_DISPLAY_TIMER,1);
huifu_use_fm_fm1(R_WAKE_MODE,1);
huifu_use_fm_fm1(R_BOUD,1);
if(RAM[R_BOUD]>5)
RAM[R_BOUD]=1;
break;
case 31:
huifu_use_fm_fm1(R_RECORD_START_TIME,4);
huifu_use_fm_fm1(R_RECORD_INTERVAL_1,12);
huifu_use_fm_fm1(R_PROGRAM_TIME,1);
huifu_use_fm_fm1(R_LOSTV_ACK_TIME,1);
huifu_use_fm_fm1(R_LOSTI_ACK_TIME,1);
huifu_use_fm_fm1(R_ALLLOSTV_CONDITION,5);
huifu_use_fm_fm1(R_KWPLUS_MODE,1);
break;
case 32:
huifu_use(R_MAIN_CUOFENG_START_1,16);
break;
case 33:
huifu_use(R_SUB_CUOFENG_START_1,16);
break;
case 34:
huifu_use(R_MAIN_CUOFENG_VALUE_CONDITION,6);
program_function();
break;
case 35:
huifu_use(R_PRICE_SWITCH,18);
break;
case 37:
gdisplay_auto_key_comm();
break;
case 39: // mcu
i=1;
if((0x7&ta0ic)==0)
i=0;
// if(ta0!=125) // VALUE==100us
// i=0;
asm("NOP");// 1
asm("NOP");// 2
asm("NOP");// 3
asm("NOP");// 4
asm("NOP");// 5
asm("NOP");// 6
asm("NOP");// 7
asm("NOP");// 8
asm("NOP");// 9
if(ta0mr!=0x40)
i=0;
if(ta0s!=1)
i=0;
if(i==0)
{
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
timer_a0_10ms_set();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
i=1;
if(ta1mr!=0xc0)
i=0;
//if(ta1!=1023)
// i=0;
asm("NOP");// 1
asm("NOP");// 2
asm("NOP");// 3
asm("NOP");// 4
asm("NOP");// 5
asm("NOP");// 6
asm("NOP");// 7
asm("NOP");// 8
asm("NOP");// 9
if(udf0!=0)
i=0;
if(ta1s==0)
i=0;
if((0x7&ta1ic)==0)
i=0;
if(i==0)
{
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
time_1s_a1_set();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
if(((0x7&int1ic)==0)||((0x7&int2ic)==0))
{
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
int12set();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
break;
case 40: // long ping diang liang
if(progfunction_kwh_f_price==yes)
if(0==longpingdianliang(&RAM[R_KWH_F_BAKA]))
dianliang_write(0);
if(progfunction_kwh_r_price==yes)
if(0==longpingdianliang(&RAM[R_KWH_F_BAKA+20]))
dianliang_write(5);
if(progfunction_kvarh_f_price==yes)
if(0==longpingdianliang(&RAM[R_KWH_F_BAKA+40]))
dianliang_write(10);
if(progfunction_kvarh_r_price==yes)
if(0==longpingdianliang(&RAM[R_KWH_F_BAKA+60]))
dianliang_write(15);
break;
}
// 485
if(RSTATUS_485_1==SEND)
{
if(tongxun_use4851_second!=RSOFT_RTC_SECOND)
{
tongxun_use4851_second=RSOFT_RTC_SECOND;
num_check_485=num_check_485+1;
}
}
else
num_check_485=0;
if(num_check_485>=20)
{
num_check_485=0;
RSTATUS_485_1=RERR;
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
init_485_1();
init_remote();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
if(1==sum_u2rb)
{
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
if(1==sum_u2rb)
{
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
init_485_1();
init_remote();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
}
if(RSTATUS_485_1==START)
if(((0x7&s2ric)!=7)||((0xef&u2mr)!=0x6)||(0==re_u2c1)) // pp6 yao kong bu fa song de bu te lv add 2003-8-26
{
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
init_485_1();
init_remote();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
if(boud_use==RAM[R_BOUD])
{
if((u2brg!=table_brg_value_from_boud[boud_use])||(u2c0!=table_u2c0_value_form_boud[boud_use]))
{
u2brg=table_brg_value_from_boud[boud_use];
u2c0=table_u2c0_value_form_boud[boud_use];
}
}
// 485-0
if(RSTATUS_485_0==SEND)
{
if(tongxun_use4850_second!=RSOFT_RTC_SECOND)
{
tongxun_use4850_second=RSOFT_RTC_SECOND;
num_check_485_0=num_check_485_0+1;
}
}
else
num_check_485_0=0;
if(num_check_485_0>=20)
{
num_check_485_0=0;
RSTATUS_485_0=RERR;
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
init_485_0();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
if(1==sum_u0rb)
{
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
if(1==sum_u0rb)
{
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
init_485_0();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
}
if(RSTATUS_485_0==START)
if(((0x7&s0ric)!=7)||((0xef&u0mr)!=0x6)||(0==re_u0c1)) // pp6 yao kong bu fa song de bu te lv add 2003-8-26
{
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
init_485_0();
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
//changed 2003-7-8----->start
if(boud_use_0==RAM[R_BOUD])
{
if((u0brg!=table_brg_value_from_boud_0[boud_use_0])||(u0c0!=table_u0c0_value_form_boud[boud_use_0]))
{
u0brg=table_brg_value_from_boud_0[boud_use_0];
u0c0=table_u0c0_value_form_boud[boud_use_0];
}
}
}
// remote
if(remote_status==remote_phase_start)
if((0x7&int3ic)!=7)
{
if((0x7&tb0ic)!=7)
remote_status=remote_phase_err;
else
if(tb0s!=1)
remote_status=remote_phase_err;
}
if(remote_status==remote_phase_send)
{
if(tongxun_useremote_second!=RSOFT_RTC_SECOND)
{
tongxun_useremote_second=RSOFT_RTC_SECOND;
num_check_remote=num_check_remote+1;}
}
else
num_check_remote=0;
if(num_check_remote>20)
{
num_check_remote=0;
remote_status=remote_phase_err;
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
init_485_1();
init_remote();
init_ta2();//l2003--8-27 add changed
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
}
if(RLCD_DISPLAY_STATUS>5)
{
set_reference_value(FIRST_REFERENCE);
RPOINT_AUTO_DISPLAY=0;
RLCD_DISPLAY_STATUS=DISPLAY_AUTO;
RDISPLAY_TIMER=1;
}
if(DISPLAY_DATA_TIME_WEEK>2)
DISPLAY_DATA_TIME_WEEK=0;
if(RSTATUS_RUN>3)
RSTATUS_RUN=RUN;//add4 factroy
if(RSTATUS_485_1>3)
RSTATUS_485_1=RERR;
if(RSTATUS_485_0>3)
RSTATUS_485_0=RERR;
if(remote_status>5)
remote_status=remote_phase_err;
if(lost_v_quadrant>6)
lost_v_quadrant=lost_v_no;
if(cut_v_quadrant>6)
cut_v_quadrant=cut_v_no;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -