?? leakdeal.c
字號:
#include "config.h"
/********************************************************************/
/* 漏率處理子函數(shù) */
/********************************************************************/
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();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -