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

📄 bpxz.c

📁 TI TMS320F206
💻 C
📖 第 1 页 / 共 2 页
字号:
	     
	        if(((reg_iosr)&0x1)==0x0)
		{
			if(sa2<=254)
			{
				sa2=sa2+1;
			}
			else
			{;}
		}
		asm(" BCND bbc,BIO  ");
		asm(" nop ");
		asm(" b aac ");			
                asm("bbc: ");
		if(sa2>=1)
		{
		sa2=sa2-1;
		}
               asm("aac: ");	
               asm(" nop ");
} 

/*自动----输出电压,保护电压,保护电流,实验时间*/

void zdong()    
{
  if((syzt==0)&&(bhflag==0))
  {
   autof();
   vauto();
  
  }
 if((bhflag!=0)&&(sa2!=0))
 {
       
        zero_sa4828();
        Re_sa4828();
	Init_sa4828();
    	
 }
 

}


/*手动----起始频率,输出电压,保护电压,保护电流,实验时间*/

void sdong()     
{
     if(bhflag==0)
     {	
     if((KeyNode.nkey==13)&&(KeyNode.nPageNo==6))
     {
     	sdtf();
     	cx=25336.2/(fup*fup*((double)conduter));
     	
 

     	
     }
     if((KeyNode.nkey==13)&&(KeyNode.nPageNo==18))
     {
     	sdty();
     	}
     Cont_sa4828(sa0,sa1,sa2);
     dlus(10000);
     }
     if((bhflag!=0)&&(sa2!=0))
     {
         
    	zero_sa4828();
    	Re_sa4828();
        Init_sa4828();  
     }
    
}



void ztest()
{       
	double i;
	sample();
	i=rms2();
	if(bhflag!=0x0000)
	{;}
	else
	{
	if((i<(uup-1.0))&&(syzt==0))
	{
	bhflag=0x0003;
        }
        }
        iup=rms1();
             
        uup=rms2();
        
        voup=vo;
	if(bhflag!=0x0000)
	{;}
	else
       {
       	if((reg_iosr&0x0008)==0x0000)
	{
	bhflag=0x0003;
        }
        if(iup>iopp)
	{
	bhflag=0x0001;
        }
        if(uup>(double)vopp)
	{
	bhflag=0x0002;
        }
       }
       if(fg<4)
       {
       sffg[fg]=uup;
       fg=fg+1;
       }
       if(sffg[0]>=sffg[1]>=sffg[2]>=sffg[3])
       {bhflag=0x0006;}
       
        fup=0.004967*(double)fall;
	
}

void canshu()
{
	if(vo>(double)vop)
	{
	bhflag=0x0005;
	}
	if(vo<5.0)
	{
	bhflag=0x0005;
	}
	if(vo>20.0)
	{
	bhflag=0x0005;
        }
        if(vop>20)
	{
	bhflag=0x0005;
        }
        if(iop<5)
	{
	bhflag=0x0005;
        }
        if(iop>15)
	{
	bhflag=0x0005;
        }
        if((30>fstart)||(fstart>300))
	{
	bhflag=0x0005;
        }
        if(timem>=60)
        {
        bhflag=0x0005;
        }
        vopp=vop;
        iopp=iop;
}	

void parainit()                /*参数初始化*/
{

uint i;
fall=201*fstart;
autoflag=0x0055;        //aa为结束,55为非
autovok =0x0055;        //aa为结束,55为非
autovsav=0.0000;        //自动调压电压缓存
bhflag  =0x0000;        //保护标志
cx      =0.0;
voup    =0.0;
uup     =0.0;
iup     =0;
syzt    =0;
sa0     =0x00a0;
sa1     =0x0017;
sa2     =0x0000;
timeff  =0;
timemm  =0; 
time    =0; 
autoff  =0x55;
autofg  =0x55;
for(i=0;i<100;i++)
{
  sine[i]=0;
}


}



void zero_sa4828()      //关机回零
{
	while(sa2)
	{
		sa2=sa2-1;
		Cont_sa4828(sa0,sa1,sa2);
		dlus(30000);
		
		
	}
}
		
void zero1_sa4828()      //关机回零
{
	while(sa2)
	{
		sa2=sa2-1;
		Cont_sa4828(sa0,sa1,sa2);
		dlus(1000);
		
		
	}
}
void sinedisp(void)
{
	uint i;
	for(i=0;i<=99;i++)
	{
	     
		sine[i]=(int)(15*pu[i%64]);
	}
}	  			


/*-------------------------------数据传输----------------------------*/
void	chuansong(void)
{ 
		int	i;
		reg_prd=1999;
 	        reg_tcr=0x0c27;
   		asm("	clrc	intm");
		TbTranRdKey();
    	for(i=0;i<0x2fff;i++)
    	{
    		SysTb(&nTbSysTime,1000);
    		if(bNewKey==True)	break;
    	}
    	 
    	bNewSysRdData=True;
    	nNewSysDataRdPreAdr=0;
    	nTbSysTime=500;
    	for(i=0;i<0x3fff;i++)
    	{
    		SysTb(&nTbSysTime,1000);
    		if(i>0x7ff && (bNewSysRdData==False))
    		break;
    	}                       
	    
	    bRefurbish=True;	
    	nTbSysTime=1000;
    	while (bRefurbish==True)
    	{     	
    	 	SysTb(&nTbSysTime,1500);
    	}
    	
    	/*if (keynSerial==KeyNode.nSerial)
    	{
			KeyNode.nkey=20;
			KeyNode.nCursorPreLine=3;
		}*/
    	keynSerial=KeyNode.nSerial;
}


/*----------------------------page information------------------------------*/             
void page()
{ 
					            
                           
            
  		switch(KeyNode.nPageNo)               
    		{
      		case Page2:                           //主菜单
    		
    			{
    			if((bhflag!=0)&&(bhflag!=0x0003))
    			{
    			 
    			zero_sa4828();
    			
	                } 
    			Re_sa4828();
	                Init_sa4828();
    			parainit();  
    			chuansong();	
										    
    			}
    			break; 
    		    		
    		case Page3:                          //参数设置                                       
    			
    			{
        		
        		chuansong();
		         	
    			}
    			break;		
    		
    		case  Page4:                         //试验方式选择
   				
    			{
                        
    			 
    			zero1_sa4828();
    		        Re_sa4828();
	                Init_sa4828();
    			parainit();  
    			chuansong();
                        canshu();
    			chuansong();
    				
    			}
   			break;
			
		case	Page5:                     //自动测量
  				
  			{
  			if(autoff==0x55)
  			{
  				preautof();
  				sample();
  				uup=rms2();
  				iup=rms1();
  				chuansong();
  				
  			}
    			zdong();
    			
    			    			 
    			}
   			break;  
			
		case	Page6:                     //手动测量调频
  				
    			{
    			
       			sdong();      
    			}
   			break;		    		
		    		
		case	Page7:                     //结果浏览
			{
			Wait;
			}
			break;
			
		case	Page16:                     //波形显示
			{
			uup=rms2();
			if(((sinenumber%10)==0)&&(syzt==0))
			{
			sinedisp();
		        }
		        sinenumber++;
			
			}
			break;	
			
		case	Page18:                    //手动测量调压
			{    
			
    			sdong(); 
			}
			break;
					
   		default:	
    			break;
    		}
    		//chuansong();      		  
		     
       			
}    	



	
/**************************MAIN PROGRAM***************************/
  main()
 {   
       	
   	int i;
   	
	InitSystem();
        Re_sa4828();
	Init_sa4828();  
	Cont_sa4828(88,88,88);
	
	while(1)
	{   
	    sample();
	    uup=rms2();
	    kkfftt(pu,px,64,6,fr,fi,0,1);
	    harmall=0.0;
	    for(i=0;i<12;i++)
	    {harmall=harmall+pu[i];}
	            harmonic();
	    	    chuansong();
	    
	 }                              
	chuansong();
	parainit();
	chuansong();
	
     	
        while(1)
	{      
		
                timedisp();
                ztest();                                  /*下位状态检测*/
                chuansong();             
                	
     	        page(); 
     	        chuansong();
     	      
     	         
     	           	        
     	                               	        		
	           	
        }      	

 }



void harmonic() 
{     
        
         
     harm1=100*pu[1]/harmall;
     harm3=100*pu[3]/harmall;
     harm5=100*pu[5]/harmall;
     harm7=100*pu[7]/harmall;
     harm[0]=harm[2]=harm[4]=harm[6]=0;
     harm[1]=(int)harm1;
     harm[3]=(int)(10*harm3);
     harm[5]=(int)(10*harm5);
     harm[7]=(int)(10*harm7);
     
     
}         

⌨️ 快捷键说明

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