📄 waterctrlv2.c
字号:
Wr1BCDNumToLcd(21 , 35);
Wr1BCDNumToLcd(21 , 36);
Wr1BCDNumToLcd(21 , 37);
Wr1BCDNumToLcd(21 , 38);
Wr1BCDNumToLcd(21 , 39);
}
if(WhatNumArea==2)
{
Wr1BCDNumToLcd(21 , 8);
Wr1BCDNumToLcd(21 , 9);
Wr1BCDNumToLcd(21 , 10);
Wr1BCDNumToLcd(21 , 11);
Wr1BCDNumToLcd(21 , 12);
Wr1BCDNumToLcd(21 , 13);
}
if(WhatNumArea==3)
{
Wr1BCDNumToLcd(21 , 29);
Wr1BCDNumToLcd(21 , 30);
Wr1BCDNumToLcd(21 , 31);
Wr1BCDNumToLcd(21 , 32);
Wr1BCDNumToLcd(21 , 33);
Wr1BCDNumToLcd(21 , 34);
}
if(WhatNumArea==4)
{
Wr1BCDNumToLcd(21 , 14);
Wr1BCDNumToLcd(21 , 15);
Wr1BCDNumToLcd(21 , 16);
Wr1BCDNumToLcd(21 , 17);
Wr1BCDNumToLcd(21 , 18);
Wr1BCDNumToLcd(21 , 19);
Wr1BCDNumToLcd(21 , 20);
Wr1BCDNumToLcd(21 , 21);
Wr1BCDNumToLcd(21 , 22);
}
if(WhatflagAera==0)
{
UnDPY_CardJEorYL_Area();
}
if(WhatflagAera==1)
{
UnDPY_DJorSDL_Area();
}
if(WhatflagAera==2)
{
UnDPY_SL_Area();
}
if(WhatflagAera==3)
{
UnDPY_JE_Area();
}
if(WhatflagAera==4)
{
UnDPY_LJSL_Area();
}
}
//********************************************************************//
//Name :DypWaitSetSDST
//Input :unsigned char tempdyptype:
// 0x00:is setting JinE
// 0x01:is setting ShuiLiang
// :unsigned char tempdpyst:
// 0x01:on
// 0x00:off
//Function :when wait to setting value that display
//D.R.P :QiuHao
//Date :06.07.08
//********************************************************************//
void DypWaitSetSDST(unsigned char tempdyptype,unsigned char tempdpyst)
{
if(tempdpyst)//if this time is display
{
if(tempdyptype == 0x00)
{
OneLcdFlagSET(43);//SheDinLiang
OneLcdFlagSET(73);//'.'
OneLcdFlagSET(79);//display 'T*' flag
OneLcdFlagClear(77);
}
else
{
OneLcdFlagSET(43);//SheDinLiang
OneLcdFlagSET(73);//'.'
OneLcdFlagSET(77);//display "M2" flag
OneLcdFlagClear(79);
}
//display 6 bit number are '-'
Wr1BCDNumToLcd( 19 ,35 );
Wr1BCDNumToLcd( 19 ,36 );
Wr1BCDNumToLcd( 19 ,37 );
Wr1BCDNumToLcd( 19 ,38 );
Wr1BCDNumToLcd( 19 ,39 );
}
else//this is not display
{
OneLcdFlagClear(43);
OneLcdFlagClear(73);
OneLcdFlagClear(79);
OneLcdFlagClear(77);
Wr1BCDNumToLcd( 21 ,35 );
Wr1BCDNumToLcd( 21 ,36 );
Wr1BCDNumToLcd( 21 ,37 );
Wr1BCDNumToLcd( 21 ,38 );
Wr1BCDNumToLcd( 21 ,39 );
}
}
//********************************************************************//
//Name :UserSettingPrice
//Input :unsigned char settingtype:0x00:JinE
// : 0x01:ShuiLiang
//Output :unsigned char : 0x00:setting error
// 0x01:setting ok
//Function :
//D.R.P :QiuHao
//Date :06.07.11
//********************************************************************//
unsigned char UserSettingValue(unsigned char * whichtypedatabuf)
{
unsigned int temppii = 0;
unsigned char tempnumaddr = 35;
char selectnum=0;
unsigned char temo=0;
KEYSELEN;
KEYONOFFEN;
KEYUPEN;
KEYDOWNEN;
while(1)
{
while(1)
{
temppii++;
if(temppii == 20000)
{
if(tempnumaddr==35)
selectnum = (*(whichtypedatabuf))&0x0f;
if(tempnumaddr==36)
selectnum = ((*(whichtypedatabuf+1))&0xf0)>>4;
if(tempnumaddr==37)
selectnum = ((*(whichtypedatabuf+1))&0x0f);
Wr1BCDNumToLcd(selectnum ,tempnumaddr );
//(* (whichtypedatabuf+(tempnumaddr-34)))
}
if(temppii == 40000)
Wr1BCDNumToLcd(21 ,tempnumaddr );
if(temppii > 40000)
temppii = 0;
//setting next number //KEYSEL
if(systemflag2 & 0x02)
{
systemflag2 &= 0xfd;
KEYSELEN;
KEYONOFFEN;
KEYUPEN;
KEYDOWNEN;
Wr1BCDNumToLcd(selectnum , tempnumaddr);
selectnum = 0;
break; //exit this number into next number
}
//number add 1 KEYUP
if(systemflag2&0x04)
{
systemflag2 &= 0xfb;
KEYSELEN;
KEYONOFFEN;
KEYUPEN;
KEYDOWNEN;
selectnum +=1;
if(selectnum>9)
selectnum=0;
//Record user setting value
if(tempnumaddr==35)
*whichtypedatabuf = selectnum;
if(tempnumaddr==36)
{
temo=(*(whichtypedatabuf+1)&0x0f);
*(whichtypedatabuf+1) = ((selectnum<<4)+temo);
}
if(tempnumaddr==37)
{
temo=(*(whichtypedatabuf+1)&0xf0);
*(whichtypedatabuf+1) = (selectnum+temo);
}
}
//number DEC 1 KEYDOWN
if(systemflag2&0x08)
{
systemflag2 &= 0xf7;
KEYSELEN;
KEYONOFFEN;
KEYUPEN;
KEYDOWNEN;
selectnum -=1;
if(selectnum<0)
selectnum = 9;
//Record user setting value
if(tempnumaddr==35)
*whichtypedatabuf = selectnum;
if(tempnumaddr==36)
{
temo=(*(whichtypedatabuf+1)&0x0f);
*(whichtypedatabuf+1) = ((selectnum<<4)+temo);
}
if(tempnumaddr==37)
{
temo=(*(whichtypedatabuf+1)&0xf0);
*(whichtypedatabuf+1) = (selectnum+temo);
}
}
//user turn on the 'ok'key
if(systemflag2&0x01)
{
Wr1BCDNumToLcd(selectnum , tempnumaddr);
selectnum = 0;
if(*whichtypedatabuf==0)
if(*(whichtypedatabuf+1)<1)
{
systemflag2 &= 0xf0;
KEYSELDS;
KEYONOFFEN;
KEYUPDS;
KEYDOWNEN;
return 0x21;
}
systemflag2&= 0xf0;
KEYONOFFEN; //if uesr stop use water that turn on this key
return 0x01;
}
}
tempnumaddr += 1;
if(tempnumaddr == 38)
tempnumaddr = 35;
}
}
//********************************************************************//
//Name :ClearRamValue
//Input :void
// :
//Output :void
//
//Function :clear
//D.R.P :QiuHao
//Date :06.07.11
//********************************************************************//
void ClearRamValue(void)
{
Cardnum[1]=0;
Cardnum[2]=0;
Settingprice[0]=0;
Settingprice[1]=0;
Settingprice[2]=0;
CardBalance[0]=0; //XX XX X.X XX
CardBalance[1]=0;
CardBalance[2]=0;
CardBalance[3]=0;
ShenYuShuiLiang[0]=0;
ShenYuShuiLiang[1]=0;
ShenYuShuiLiang[2]=0;
ShenYuShuiLiang[3]=0;
ShuiLiang[0]=0;
ShuiLiang[1]=0;
ShuiLiang[2]=0;
JinE[0]=0;
JinE[1]=0;
JinE[2]=0;
SheDinLiang[0]=0; //0x x.x xx
SheDinLiang[1]=0;
SheDinLiang[2]=0;
SheDinJinE[0]=0;
SheDinJinE[1]=0;
SheDinJinE[2]=0;
systemflag=0x00;
systemflag2 = 0x00;
}
//N*<uIYQi?(TZ2;TZ5DJ1<d#,4K:/J}P^8D:s6(ReTZFM1702.CND<~VP
//********************************************************************//
//Name :CheckCardIsMove
//Input :void
// :
//Output :unsigned char 0x01:Card is been here
// 0x22:Card is benn remove
//Function :check the card is been remove thistime
//D.R.P :QiuHao
//Date :06.07.12
//********************************************************************//
/*
unsigned char CheckCardIsMove(void)
{
unsigned char tempc1,tempc2=0;
//Read Card
RevBuffer[0] = 0x08;
RevBuffer[1] = 0x04;
DsInt;
Cmd_process();
OpInt;
if((RevBuffer[0] == 0x11)&&(RevBuffer[1]==0x00))
return 0x01;
else
return 0x22;
}
unsigned char CheckCardIsMove(void)
{
unsigned char tempch1;
SPIWrite(CRCPresetLSB,0x63);
SPIWrite(CWConductance,0x3f);
SPIWrite(ModConductance,0x3f);
SPIWrite(ChannelRedundancy,0x0f);
buff[0] = RF_CMD_READ;
buff[1] = Block_Adr;
DsInt;
tempch1 = Command_Send(2, buff, Transceive);
OpInt;
if(tempch1 == 0)
{
return 0x22;
}
else
{
return 0x01;
}
}
*/
//********************************************************************//
//Name :BCDBytesAdd
//Input :unsigned char *source xx xx xx xx xx xx.....
// :unsigned char *target xx xx xx xx xx xx.....
// :unsigned char length
//Output :void
//Function :source[]+target[]->source[]
//D.R.P :QiuHao.
//Date :06.07.14
//********************************************************************//
void BCDBytesAdd(unsigned char *source,unsigned char *target,unsigned char length)
{
char i0;
char tmpL,tmpH,tmpC;
unsigned char tmps_h,tmpt_h,tmps_l,tmpt_l;
tmpC = 0; //5MN;5D=xN;
for (i0 = length-1 ; i0 >= 0; i0--)
{
tmps_l = source[i0] & 0x0f;
tmpt_l = target[i0] & 0x0f;
tmpL = tmps_l + tmpt_l + tmpC;
tmpC = 0;
if (tmpL > 9 )
{
tmpL = tmpL - 0xa;
tmpC = 1;
}
tmps_h = source[i0] & 0xf0;
tmpt_h = target[i0] & 0xf0;
tmps_h = tmps_h >> 4;
tmpt_h = tmpt_h >> 4;
tmpH = tmps_h + tmpt_h + tmpC;
tmpC = 0 ;
if (tmpH > 9 )
{
tmpH = tmpH - 0xa;
tmpC = 1;
}
tmpH = tmpH << 4;
source[i0] = tmpH +tmpL;
}
}
//********************************************************************//
//Name :BCDBytesSub
//Input :unsigned char *source xx xx xx xx xx xx.....
// :unsigned char *target xx xx xx xx xx xx.....
// :unsigned char length
//Output :int 0x0001: Sub overflow
// 0x0000: Sub Ok
//Function :source[]-target[]->source[]
//D.R.P :QiuHao.
//Date :06.07.14
//********************************************************************//
unsigned char BCDBytesSub(unsigned char *source,unsigned char *target,unsigned char length)
{
char i0;
char tmpL,tmpH,tmpC;
char tmps_h,tmpt_h,tmps_l,tmpt_l;
tmpC = 0; //5MN;=h=xN;
for (i0 = length-1 ; i0 >= 0; i0--)
{
tmps_l = source[i0] & 0x0f;
tmpt_l = target[i0] & 0x0f;
tmpL = tmps_l - tmpt_l - tmpC;
if (tmpL<0)
{
tmpL = 10 + tmps_l - tmpt_l - tmpC;
tmpC = 1;
}
else tmpC = 0;
tmps_h = source[i0] & 0xf0;
tmpt_h = target[i0] & 0xf0;
tmps_h = tmps_h >> 4;
tmpt_h = tmpt_h >> 4;
tmpH = tmps_h - tmpt_h - tmpC;
if (tmpH < 0 )
{
tmpH = 10 + tmps_h - tmpt_h - tmpC;
tmpC = 1;
}
else tmpC = 0;
tmpH = tmpH << 4;
source[i0] = tmpH +tmpL;
}
return tmpC;
}
//********************************************************************//
//Name :AddUsingValueOp
//Input :unsigned char :waterunit :water counter pad unit flager
//Output :void
//D.R.P :QiuHao.
//Date :06.07.17
//********************************************************************//
void AddUsingValueOp(unsigned char waterunit)
{
unsigned char tempaddvar[3]={0,0,0};
unsigned char temp1addvar[3]={0,0,0};
unsigned char temp2addvar[4]={0,0,0,0};
if(waterunit==0)
{
tempaddvar[1]=0x05; //1m3
temp1addvar[0]=Settingpricehalf[0];
temp1addvar[1]=Settingpricehalf[1];
temp1addvar[2]=Settingpricehalf[2];
}
if(waterunit==1)
{
tempaddvar[2]=0x50; //0.1m3
temp1addvar[2]|=((Settingpricehalf[2]&0xf0)>>4);
temp1addvar[2]|=((Settingpricehalf[1]&0x0f)<<4);
temp1addvar[1]=((Settingpricehalf[1]&0xf0)>>4);
temp1addvar[0]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -