📄 zhuancun.h
字号:
/*Start of lzh on 2009-2-26 15:30 山东烟台0902*/
unsigned char dianliang_zhuancun_qingqiu;
unsigned char xuliang_zhuancun_qingqiu;
typedef struct {
unsigned char dianliang;
unsigned char xuliang;
}ZHUANCUN_QINGQIU_TCB;
//ZHUANCUN_TCB Zhuancun_Info[3];
ZHUANCUN_QINGQIU_TCB strZhuancun_qingqiu[3];
//ZHUANCUN_STATE staZhuancun[3];
void init_zhuancun()
{
unsigned char i;
xuliangqingling_qingqiu = 0;
for(i=0;i<3;i++)
{
strZhuancun_qingqiu[i].dianliang = 0;
strZhuancun_qingqiu[i].xuliang = 0;
}
}
/*End of lzh on 2009-2-26 15:30 山东烟台0902*/
unsigned char had_zhuancun(fmaddr,hour,day) // return 1 no cun ,0----had cun
unsigned int fmaddr;
unsigned char hour,day;
// fmaddr------fm store had store (last hour day month)
// hour day------chao biao or 1 day 0 hour
{
data_addr.addri=fmaddr;
read(FM,3);
if((wr_data[0]!=hour)||(wr_data[1]!=day)||(wr_data[2]!=RSOFT_RTC_MONTH))
{
wr_data[0]=hour;
wr_data[1]=day;
wr_data[2]=RSOFT_RTC_MONTH;
write(FM,3);
system_use_time=1;
return 1;
}
return 0;
}
void zhuancun_use(type_biao,valuestatus,len)
unsigned char type_biao,valuestatus,len;
// type_biao-------------zhuan cun de er ci biao lei xing
// valuestatus------------zhe ge er ci biao xu zhuan cun de zong ci shu
// example dian liang fen 4 kuai, zhi wei 3(0,1,2,3)
// len ------------------mei kuai de ge shu
{
unsigned char l1;
unsigned int l2;
if(rcurrent_status_zhuancun > valuestatus)
{
rstatus_zhuan_cun=zhuancun_no;
rcurrent_status_zhuancun = 0;
}
else
{// read zhi zhen
data_addr.addri=current_twobiaofm_block_addr(type_biao,0);
if(data_addr.addri!=0xffff)
{
l2=len;
l2=l2*rcurrent_status_zhuancun;// offset addr
data_addr.addri=data_addr.addri+l2;
for(l1=0;l1<len;l1++)
{
wr_data[l1]=zhuancun[l2];// ram[]
l2++;
}
write(EP1,len);
}
system_use_time=1;
rcurrent_status_zhuancun=rcurrent_status_zhuancun+1;
if(rcurrent_status_zhuancun>valuestatus)
{
rstatus_zhuan_cun=zhuancun_no;
rcurrent_status_zhuancun=0;
}
}
}
void zhuancun_dianliang()
{
unsigned char ucType;
switch(Rcurrent_chaobiaori_use)
{
case 0: ucType = TYPE_EP1_HISTROY_KWH; break;
case 1: ucType = TYPE_EP1_HISTROY_KWH2;break;
case 2: ucType = TYPE_EP1_HISTROY_KWH3;break;
default: ucType = 0xff; break;
}
if(ucType != 0xff)
zhuancun_use(ucType,3,24);// block 4
}
void zhuancun_xuliang()
{
unsigned char ucType;
switch(Rcurrent_chaobiaori_use)
{
case 0: ucType = TYPE_EP1_HISTROY_KW; break;
case 1: ucType = TYPE_EP1_HISTROY_KW2;break;
case 2: ucType = TYPE_EP1_HISTROY_KW3;break;
default: ucType = 0xff; break;
}
if(ucType != 0xff)
zhuancun_use(ucType,5,28); // block 6
}
void zhuancun_xuliangqingling()
{
zhuancun_use(TYPE_EP1_CLRKWSTOR_RECORD,5,28);// block 6
}
void zhuancun_fuheqi()
{
zhuancun_use(TYPE_EP1_SEASONCHANGE_RECORD,3,22); // block 4
}
void zhuancun_dianliang_start(hour,day)
unsigned char hour,day;
// hour day------->chao biao ri huo 1 day 0 hour
{unsigned char l;
unsigned char ucType;
for(l=0;l<96;l++)
{
zhuancun[l]=RAM[R_KWH_F_BAKA+l]; // data--------->
wr_data[l]=zhuancun[l];
}
data_addr.addri=FM_ZHUANCUN_BUFFER;
write(FM,96);
switch(Rcurrent_chaobiaori_use)
{
case 0: ucType = TYPE_EP1_HISTROY_KWH; break;
case 1: ucType = TYPE_EP1_HISTROY_KWH2;break;
case 2: ucType = TYPE_EP1_HISTROY_KWH3;break;
default: ucType = 0xff; break;
}
if(ucType != 0xff)
{
rzhuancun_tpye_ercibiao = ucType;// zhuan cun de er ci biao
next_point(ucType,10);// kuai gun dong 0----->10(left)
rstatus_zhuan_cun = zhuancun_yes;
rcurrent_status_zhuancun = 0;
}
}
void zhuancun_clr_xulianguse()
{
unsigned char l,l1;
unsigned int l2;
for(l2=0;l2<168;l2++)
{
zhuancun[l2]=RAM[R_KW_F+l2];
RAM[R_KW_F+l2]=0;// xu liang qing ling
}
// fm_eeprom zhu yi add -----jiao yuan (must)
copy_ram_to_fm(R_KW_F,168,FM_KW_F);
for(l=0;l<168;l++)
wr_data[l]=zhuancun[l];
data_addr.addri=FM_ZHUANCUN_BUFFER;
write(FM,168);
init_xuliang();
system_use_time=1;
rstatus_zhuan_cun = zhuancun_yes;
rcurrent_status_zhuancun = 0;
}
void zhuancun_xuliang_start(hour,day)
unsigned char hour,day;
{
unsigned char ucType;
zhuancun_clr_xulianguse();
switch(Rcurrent_chaobiaori_use)
{
case 0: ucType = TYPE_EP1_HISTROY_KW; break;
case 1: ucType = TYPE_EP1_HISTROY_KW2;break;
case 2: ucType = TYPE_EP1_HISTROY_KW3;break;
default: ucType = 0xff; break;
}
if(ucType != 0xff)
{
rzhuancun_tpye_ercibiao = ucType;
next_point(ucType,10);
}
}
void zhuancun_xuliangqingling_start(hour,day)
unsigned char hour,day;
{
zhuancun_clr_xulianguse();
rzhuancun_tpye_ercibiao = TYPE_EP1_CLRKWSTOR_RECORD;//l 2
next_point(TYPE_EP1_CLRKWSTOR_RECORD,4);
}
void zhuancun_cuofeng(day,hour)
unsigned char day,hour;
{unsigned char l;
if(1==had_zhuancun(FM_CUOFENG_YICUN,hour,day))
{// RU HE PAN DUAN FU CUO FENG----->
next_point(TYPE_EP1_CUOFENGKWH_RECORD,2);// block num=3
data_addr.addri=current_twobiaofm_block_addr(TYPE_EP1_CUOFENGKWH_RECORD,0);
if(data_addr.addri!=0xffff)
{
for(l=0;l<45;l++)
wr_data[l]=RAM[R_CUOFENG_KWH_F+l];
write(EP1,45);//
for(l=0;l<30;l++)
RAM[R_CUOFENG_KW_1+l]=0;
copy_ram_to_fm(R_CUOFENG_KW_1,30,FM_CUOFENG_KW_1);
}
}
}
// a 0 dianliang 1--yongdianliang 2--xuliang 19 jiance
void shangdiancun_onetime(a,day,hour)
unsigned char a,hour,day;
// a----------------twotabletype
// day hour----------chao biao ri
{unsigned char l,l1,use;
unsigned int l2;
use = 0;
switch(a)
{
case TYPE_EP1_HISTROY_KWH:
Rcurrent_chaobiaori_use = 0;
use = 0xa5;
break;
case TYPE_EP1_HISTROY_KWH2:
Rcurrent_chaobiaori_use = 1;
use = 0xa5;
break;
case TYPE_EP1_HISTROY_KWH3:
Rcurrent_chaobiaori_use = 2;
use = 0xa5;
break;
case TYPE_EP1_HISTROY_KW:
Rcurrent_chaobiaori_use = 0;
use = 0x5a;
break;
case TYPE_EP1_HISTROY_KW2:
Rcurrent_chaobiaori_use = 1;
use = 0x5a;
break;
case TYPE_EP1_HISTROY_KW3:
Rcurrent_chaobiaori_use = 2;
use = 0x5a;
break;
case TYPE_EP1_CUOFENGKWH_RECORD: // cuo feng
watchdog();
zhuancun_cuofeng(day, hour);
break;
}
if(use == 0xa5)
{
zhuancun_dianliang_start(hour,day);
for(l=0;l<4;l++)
{
watchdog();
zhuancun_dianliang();
}
}
if(use == 0x5a)
{
zhuancun_xuliang_start(hour,day);
for(l=0;l<6;l++)
{
watchdog();
zhuancun_xuliang();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -