📄 leakdeal.c
字号:
#include "config.h"
/********************************************************************/
/* 漏率处理子函数 */
/********************************************************************/
void LeakDeal(void)
{
uint8 i,Exp;
float TmpLeakBase;
// SetAmp(4);
/*if ((StartLkDec!=0)||(SysStd==StandBy))
{
switch(StartLkDec)
{
case 1:
if ((AmpDly1==0)&&(VDly3==0))
switch(AmpRate)
{
case 1:
if (SysStd==StandBy)
LeakValue=(LkValue)/4000*33*33*33*2940;
else
LeakValue=(LkValue)*33*33*33*2940;
break;
case 2:
if (SysStd==StandBy)
LeakValue=(LkValue)/4000*33*33*2940;
else
LeakValue=(LkValue)*33*33*2940;
break;
case 3:
if (SysStd==StandBy)
LeakValue=(LkValue)/4000*33*2940;
else
LeakValue=(LkValue)*33*2940;
break;
case 4:
if (SysStd==StandBy)
LeakValue=(LkValue)/4000*2940;
else
LeakValue=(LkValue)*2940;
break;
default:
break;
}
if ((LkValue)>50000)
{
if (AmpDly1==0)
{
if((AmpRate>1)&&(AmpSelect==0))
{
AmpRate=AmpRate-1;
AmpChgDly&=0xfe;
//DelayNS(200);
}
else
;//信号上限益出
}
}
else if ((LkValue)<1000)
{
if( (AmpDly1==0))
{
if ((AmpRate<4)&&(AmpSelect==0))
{
AmpRate=AmpRate+1;
AmpChgDly&=0xfe;
//DelayNS(200);
}
else
{
if ((DecPort>2)||(DecPort==0))
OverPort=2;//信号逸出
}
}
}
if ((AmpChgDly&0x01)==0)
{
AmpChgDly|=0x01;
AmpDly1=30;
}
//if (AmpDly1==0)
SetAmp(AmpRate);
break;
case 2:
if ((AmpDly1==0)&&(VDly5==0))
switch(AmpRate)
{
case 1:
LeakValue=LkValue*33*33*33*50;
break;
case 2:
LeakValue=LkValue*33*33*50;
break;
case 3:
LeakValue=LkValue*33*50;
break;
case 4:
LeakValue=LkValue*50;
break;
default:
break;
}
if ((LkValue)>50000)
{
if (AmpDly1==0)
{
if((AmpRate>1)&&(AmpSelect==0))
{
AmpRate=AmpRate-1;
AmpChgDly&=0xFe;
//DelayNS(200);
}
else
{
OverPort=1;//信号上限益出
Overed=1;
}
}
}
else if ((LkValue)<1000)//else if ((LeakValueRd/128)<1000)
{
if (AmpDly1==0)
{
if ((AmpRate<4)&&(AmpSelect==0))
{
AmpRate=AmpRate+1;
AmpChgDly&=0xfe;
//DelayNS(200);
}
else
{
if ((DecPort>2)||(DecPort==0))
OverPort=3;//信号逸出
}
}
}
if ((AmpChgDly&0x01)==0)
{
AmpChgDly|=0x01;
AmpDly1=30;
}
//if (AmpDly1==0)
SetAmp(AmpRate);
break;
case 3:
if ((AmpDly1==0)&&(VDly6==0))
switch(AmpRate)
{
case 1:
LeakValue=LkValue*33*33*33;
break;
case 2:
LeakValue=LkValue*33*33;
break;
case 3:
LeakValue=LkValue*33;
break;
case 4:
LeakValue=LkValue;
break;
default:
break;
}
if ((LkValue)>50000)
{
if (AmpDly1==0)
{
if((AmpRate>1)&&(AmpSelect==0))
{
AmpRate=AmpRate-1;
AmpChgDly&=0xfe;
//DelayNS(200);
}
else
{
OverPort=2;//信号上限益出
Overed=1;
}
}
}
else if ((LkValue)<1000)
{
if (AmpDly1==0)
{
if ((AmpRate<4)&&(AmpSelect==0))
{
AmpRate=AmpRate+1;
AmpChgDly&=0xfe;
//DelayNS(200);
}
else
{
SetAmp(4);//inficon on our's off
OverPort=3;//信号逸出
}
}
}
if ((AmpChgDly&0x01)==0)
{
AmpChgDly|=0x01;
AmpDly1=30;
}
//if (AmpDly1==0)
SetAmp(AmpRate);
break;
default:
break;
}
ZeroLeakValueTp=LeakValue;
if (Zeroing==0xff)
{
if (ZeroLeakValue>ZeroLeakValueTp)
{
//LeakValue=(ZeroLeakValue)-(ZeroLeakValue)+0.1;
LeakValue=LkValueDown;
}
else
{
LeakValue=ZeroLeakValueTp-ZeroLeakValue+0.1;
LkValueDown=LeakValue;
}
if (ZeroLeakValue>=ZeroLeakValueTp)
{
ZeroLeakValue=ZeroLeakValueTp;
}
}
else
{
ZeroLeakValue=0xfffff;
}
LeakBase=(float)((float)(CalBase)*(LeakValue)/(float)(RemCal)*(float)(MacFact/10.0));
TmpLeakBase=LeakBase;
Exp=0;
if ((LeakBase<10.0)&&(LeakBase!=0))
{
while(TmpLeakBase<10.0)
{
TmpLeakBase*=10;
Exp++;
}
LeakExp=CalExp+Exp;
LeakBase=TmpLeakBase;
}
else //if (LeakBase>99)
{
while(TmpLeakBase>=100.0)
{
TmpLeakBase/=10;
Exp++;
}
LeakExp=CalExp-Exp;
LeakBase=(int8)(TmpLeakBase);
}
}*/
if((LeakValueRd1<100)&&(FPGAEn==0))
{
//IRQDisable();
Cs7705(0);
FPGAEn=1;
ad_ch_scal(0,7);
Cs7705(1);
BeepAlarm(1);
//IRQEnable();
}
else if((LeakValueRd1>30000)&&(FPGAEn==1))
{
//IRQDisable();
Cs7705(0);
FPGAEn=0;
ad_ch_scal(0,0);
Cs7705(1);
BeepAlarm(2);
//IRQEnable();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -