⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leakdeal.c

📁 我用ARM写的一些东西
💻 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 + -