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

📄 asigpro.c

📁 F2812的TI框架编的小程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	    	y[i]   = output1[data_length-i-1];
			d1y[i] = output2[data_length-i-1];
	    	d2y[i] = output3[data_length-i-1];
		}
    }
    //----------------------------------------------------------------
    	// The new data section is determinated in here!.
    //SETP 2
    while((d1max > THRESHOLD1)&&(!counter2))
       {
    	
    	i=0;
    	if(p_d1max-i-1<2)
			p_min1=0;

		else
    	{
    	   	while((i<p_d1max-2)&&((output2[p_d1max-i-1])*(output2[p_d1max-i]))>0)
    			i++;
			p_min1=p_d1max-i-1;//THE POSITION OF MIN1
		}
		min1 = output1[p_min1];
//-2-------------------------------------
		i=0;
		while(output2[p_d1max+i]*(output2[p_d1max+i+1]>0)&&(p_d1max+i<1+data_length)-3)//?????
			i++;
		p_max = p_d1max + i+1;
		max = output1[p_max];		
//3-----------------------------------
		i=0;
		if((p_max-p_min1)>THRESHOLD3)
		{
			if(p_d1max-THRESHOLD1-i>3)
			{
				while((output2[p_d1max-THRESHOLD1-i-1]*output2[p_d1max-THRESHOLD1-i]>0)&&(i<p_d1max-THRESHOLD1-3))
					i++;
			}
			p_min1=p_d1max-i-1;
			min1 = output1[p_min1];
		}
//4--------------------------------------------
		i=0;
		while((output2[p_max+i]*output2[p_max+i+1]>0)&&(p_max+i)<data_length-2)
			i++;
		p_min2 = p_max+i;
		min2 = output1[p_min2];  
		
//Step4-------------------------------------------		
		if((max-min1)>=THRESHOLD4*(max-min2))  
		{
			if((p_max+THRESHOLD1)<data_length)
			{	
				while((output3[p_max+THRESHOLD1+i]*(output3[p_max+THRESHOLD1+2]>0))&&(p_max+i<(data_length-2)))
					i++;
				p_d1min=p_max+THRESHOLD1+i;
				//d1min=output1[p_d1min];
			}	
			else
			{
				p_d1min=data_length-1;
				//d1min=output1[p_d1min];
			}
			i=0;
			while((output2[p_d1max+i]*output2[p_d1min+i+1]>=0)&&((p_d1min+i)<(data_length-2)))
			{
				i++;
			}
			p_min2 = p_d1min+i-1;
			min2 = output1[p_min2];
		}			
		//A NEW AND SIMPLE METHOD TO FIND OUT ABRATION!!!!!!!!
    	temp_num = THRESHOLD6;
    	if(p_d1max>27)
	    {
			temp_num = 0;
	   		for(i=0;i<10;i++)
	    	{
	    		temp_num = output2[p_d1max-15-i]+output2[p_d1max+15+i]+temp_num;
	    	}
	    }
    	if((temp_num<THRESHOLD6)&&(d1max>8))
		{
			
				divided_data[counter1][0] = 1;
				divided_data[counter1][1] = p_min1;//++++????????????????
				divided_data[counter1][2] = p_min2;
				divided_data[counter1][3] = p_d1max;
				divided_data[counter1][4] = p_max;
				divided_data[counter1][5] = max-min1;
				counter1++;
			
		}
		//END OF NEW METHOD
		else if((p_max-p_d1max)<=THRESHOLD4*(p_d1max-p_min1))
		{
		//	if(p_max>p_d1max-extremum[3])
		//		alpha3=10;
		//	else
				alpha3=20;
			if((p_min2-p_min1)<300)
			{
				if((max-min1)<(alpha3*(max-min2)))
				{
				
					divided_data[counter1][1] = p_min1;//++++????????????????
					divided_data[counter1][2] = p_min2;
					divided_data[counter1][3] = p_d1max;
					divided_data[counter1][4] = p_max;
					divided_data[counter1][5] = max-min1;
					counter1++;
				}
			}
		}

		data_length=data_length-p_min2+p_min1;
     	d1max = output2[data_length-1];
     	p_d1max = 0;		
		for(i=0;i<(data_length);i++)
		{
			if(i>=p_min1)
			{
				output1[i]=output1[i+p_min2-p_min1];
				output2[i]=output2[i+p_min2-p_min1];
				output3[i]=output3[i+p_min2-p_min1];
			}			
			if (d1max < output2[i])
    		{
     			d1max = output2[i];
     			p_d1max = i;
   			}

		}
		counter2++;
//--------------------------------
//-----------------    
    }
    
    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	counter2 = 0;
	data_length = temp_num1;
	for(i=0;i<data_length;i++)
    {
    	y[i]   = output1[data_length-i-1];
		d1y[i] = output2[data_length-i-1];
    	d2y[i] = output3[data_length-i-1];
	}
	for(i=0;i<data_length;i++)
    {
    	output1[i] = y[i];
    	output2[i] = -d1y[i];
    	output3[i] = d2y[i];
        if (d1max < output2[i])
    	{
     		d1max = output2[i];
     		p_d1max = i;
   		}
   	}
	 
	 while((d1max > THRESHOLD1)&&(!counter2))
    {
    	
    	i=0;
    	if(p_d1max-i-1<2)
			p_min1=0;

		else
    	{
    	   	while((i<p_d1max-2)&&((output2[p_d1max-i-1])*(output2[p_d1max-i]))>0)
    			i++;
			p_min1=p_d1max-i-1;//THE POSITION OF MIN1
		}
		min1 = output1[p_min1];
//-2-------------------------------------
		i=0;
		while(output2[p_d1max+i]*(output2[p_d1max+i+1]>0)&&(p_d1max+i<1+data_length)-3)//?????
			i++;
		p_max = p_d1max + i+1;
		max = output1[p_max];		
//3-----------------------------------
		i=0;
		if((p_max-p_min1)>THRESHOLD3)
		{
			if(p_d1max-THRESHOLD1-i>3)
			{
				while((output2[p_d1max-THRESHOLD1-i-1]*output2[p_d1max-THRESHOLD1-i]>0)&&(i<p_d1max-THRESHOLD1-3))
					i++;
			}
			p_min1=p_d1max-i-1;
			min1 = output1[p_min1];
		}
//4--------------------------------------------
		i=0;
		while((output2[p_max+i]*output2[p_max+i+1]>0)&&(p_max+i)<data_length-2)
			i++;
		p_min2 = p_max+i;
		min2 = output1[p_min2];  
		
//Step4-------------------------------------------		
		if((max-min1)>=THRESHOLD4*(max-min2))  
		{
			if((p_max+THRESHOLD1)<data_length)
			{	
				while((output3[p_max+THRESHOLD1+i]*(output3[p_max+THRESHOLD1+2]>0))&&(p_max+i<(data_length-2)))
					i++;
				p_d1min=p_max+THRESHOLD1+i;
				//d1min=output1[p_d1min];
			}	
			else
			{
				p_d1min=data_length-1;
				//d1min=output1[p_d1min];
			}
			i=0;
			while((output2[p_d1max+i]*output2[p_d1min+i+1]>=0)&&((p_d1min+i)<(data_length-2)))
			{
				i++;
			}
			p_min2 = p_d1min+i-1;
			min2 = output1[p_min2];
		}			
		//A NEW AND SIMPLE METHOD TO FIND OUT ABRATION!!!!!!!!
    	temp_num = THRESHOLD6;
    	if(p_d1max>27)
	    {
			temp_num = 0;
	   		for(i=0;i<10;i++)
	    	{
	    		temp_num = output2[p_d1max-15-i]+output2[p_d1max+15+i]+temp_num;
	    	}
	    }
    	if((temp_num<THRESHOLD6)&&(d1max>8))
		{
			
				divided_data[counter1][0] = 1;
				divided_data[counter1][1] = p_min1;//++++????????????????
				divided_data[counter1][2] = p_min2;
				divided_data[counter1][3] = p_d1max;
				divided_data[counter1][4] = p_max;
				divided_data[counter1][5] = max-min1;
				counter1++;
			
		}
		//END OF NEW METHOD
		else if((p_max-p_d1max)<=THRESHOLD4*(p_d1max-p_min1))
		{
		//	if(p_max>p_d1max-extremum[3])
		//		alpha3=10;
		//	else
				alpha3=20;
			if((max-min1)<(alpha3*(max-min2)))
			{
				if((p_min2-p_min1)<300)
				{
					divided_data[counter1][1] = p_min1;//++++????????????????
					divided_data[counter1][2] = p_min2;
					divided_data[counter1][3] = p_d1max;
					divided_data[counter1][4] = p_max;
					divided_data[counter1][5] = max-min1;
					counter1++;
				}
			}
		}

		data_length=data_length-p_min2+p_min1;
     	d1max = output2[data_length-1];
     	p_d1max = 0;		
		for(i=0;i<(data_length);i++)
		{
			if(i>=p_min1)
			{
				output1[i]=output1[i+p_min2-p_min1];
				output2[i]=output2[i+p_min2-p_min1];
				output3[i]=output3[i+p_min2-p_min1];
			}			
			if (d1max < output2[i])
    		{
     			d1max = output2[i];
     			p_d1max = i;
   			}

		}
		counter2++;
//--------------------------------
//-----------------    
    
    }  
	a_sp.ab_value = divided_data[0][5];

}


//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -