亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 本程序是基于TI公司DSPF206芯片設計的伺服控制器的源程序。
?? C
字號:
/*

*/

#include "register.h"  
#define lcd_i  0x1801  /*E=1 RS=0 R/W=0*/
#define lcd_d  0x1805  /*E=1 RS=1 R/W=0*/
#define lcd_c  0x1800  /*E=0 RS=0 R/W=0*/

float p10,p11,p12,p13,p20;       /*System Parameters*/ 
float p00[10];                   /*定位位置適*/
long int m00,m01,m02;            /*Dispaly Parameters*/ 
unsigned int  m03;               /*Valve signal dispaly*/
int PT_counter;                   /*PT_counter:定位時間間隔計數器*/
int D_counter;                   /*D_counter:實時顯示計數器10個定時器中斷顯示一次*/
int PM_counter;                  /*PM_counter:參數設定計數器*/  


unsigned int  P_feedback;        /*P_feedback:位移采樣值*/

float         P_ins;             /*P_ins位置信號指令*/
long int      mv_ins;            /*比例閥指令*/

float bp[11]={146,306,726,1245,1665,1825,1665,1245,726,306,146};/*位移采樣濾波系數 */
float x[11]={0,0,0,0,0,0,0,0,0,0,0}; 
float bv[6]={0.028393,0.1427,0.3289,0.3289,0.1427,0.028393};
float vx[6]={0,0,0,0,0,0};
float px2,px1,v2,v1,integral;


unsigned char ready[19]={"Controller is ready"};
unsigned char autom[17]={"Run automatically"};
unsigned char manu[12]={"Run manually"};
unsigned char reset[12]={"System Reset"}; 
unsigned char ld[13]={"Long-Distance"}; 
unsigned char param[10]={"Parameters"};

unsigned char dism00[10]={"M00=000.00"};  
unsigned char dism01[10]={"M01=000.00"}; 
unsigned char dism02[10]={"M02=000.00"};   




/****************************************/
/****************************************/       
/* Disable interrupts */       
 inline void  disable()
  {
	asm(" setc INTM");
  }

/* Enable interrupts */
 inline void  enable() 
  {
	asm(" clrc INTM");
  }                      
/****************************************/
/* Do uart interrupt */ 
 void interrupt uart()
  {
	return;
  }      
/****************************************/  
  /* Do timer interrupt */         
 void interrupt timer()
  { 
     adreset=0x00ff;
    asm(" clrc xf");
    asm(" setc xf");
    asm(" clrc INTM"); 
   
    if(D_counter==9)D_counter=0;
    if(PT_counter==999)PT_counter=0; 
    D_counter++;        /*實時顯示計數器*/ 
    PT_counter++; 
   
 	return;
   }   

/****************************************/
  /* Do A/D int23 interrupt */         
 void interrupt adint23() 
 {  float Filter ();
    float Differential();
 
    float f_p,error,velocity,acc; /*f_p:浮點位移值*/ 
    float valve_ins;
    
    
    
            
    P_feedback=ad0;      /*位置采樣*/
     
     x[10]=x[9];                        /*FIR濾波*/
	  x[9]=x[8];
	  x[8]=x[7];                                     
	  x[7]=x[6];
	  x[6]=x[5];
	  x[5]=x[4];
	  x[4]=x[3];
	  x[3]=x[2];
	  x[2]=x[1];
	  x[1]=x[0];
      x[0]=(float)P_feedback;  
	  f_p=Filter(x,bp,10)/10000;   
      f_p=f_p*210/65535;  /*轉換位置值單位mm*/ 
      m01=(long int)(f_p*100);  /*反饋位置顯示*/
      
      error=P_ins-f_p;    /* 偏差值*/   
      
/***********求速度*************************/ 
      px2=px1;
      px1=f_p;
       
      vx[6]=vx[5];
	  vx[5]=vx[4];
	  vx[4]=vx[3];
	  vx[3]=vx[2];
	  vx[2]=vx[1];
	  vx[1]=vx[0];
      vx[0]=Differential( px2, px1, 0.001);
      velocity=Filter(vx,bv,5);
      
      
/***********求加速度*************************/  
      v2=v1;
      v1=velocity;
      acc=Differential( v2, v1, 0.001);     
      
      
/***********求積分**************************/ 
      if((abs(error)<10)&&(abs(error)>0.1))  
      {integral=integral+error;}
      else integral=0; 
      
/***********算法*****************************/  
      valve_ins=p10*error*0.01+p11*integral*0.01+p12*velocity*0.001+p13*acc*0.00001;
      valve_ins=valve_ins*2047; 
      mv_ins=(int)valve_ins+0x7ff;
      if(mv_ins>=4095)
       { mv_ins=0xfff;} 
      if(mv_ins<=0)
       { mv_ins=0x000;} 
       
      CSDA=mv_ins; 
    return;    
 } 
/****************************************/
 
  float Filter (xx,bb,k)  /*濾波器   */
       float xx[11],bb[11];
       int k;
	  { float y;
	    int i;
		y=0;
		for(i=0;i<=k;i++)
		{
			y=xx[i]*bb[i]+y;
		}
		return(y);
	  }
  float Differential( x2, x1, t)  /*微分   */
    float x1,x2,t;
   {float dx;
    dx=(x2-x1)/t;
	return (dx);
   }  
/****************************************/

/***************************************/     
   /* Do nothing interrupt */         
 void interrupt nothing() 
 {
 	return;
 } 
/****************************************/
 void lcddelay()   /*lcd Delay*/
 { int ii;
   ii=1;
   while(ii<=100)
   { ii++;
   }
 	return;
 }              
 
 
 void   lcdcom(com)   /*lcd Instruction signal*/
  unsigned int com; 
 { IOSR=lcd_i; 
  asm(" NOP");
  CSLCD=com;      
  asm(" NOP");
  IOSR=lcd_c; 
  lcddelay();
  IOSR=0x1808; 
 	return;
 }   
             
 void  lcddat(dat)   /*lcd Data signal*/
  unsigned int dat;
 { IOSR=lcd_d;
  CSLCD=dat;
  asm(" NOP");
  IOSR=lcd_c;   
  lcddelay();    
  IOSR=0x1808; 
   	return;
 }  
 
 void  lcddispaly(com,dat)   /*lcd Dispaly */
 unsigned int com,dat;
 {	
    lcdcom(com);  
	lcddat(dat); 
 	return;
 
 }  
 
 /***************run_time Dispaly***********************/  
 void run_time_dispaly()
  { int m004,m005,m006,m008,m009;  
    int m014,m015,m016,m018,m019;
    int i,n; 
    unsigned int lcddb; 
    
  
    m00=(long int)(P_ins*100); 
    m004=m00/10000;
    m005=m00/1000-m004*10;  
    m006=m00/100-m004*100-m005*10;
    m008=m00/10-m004*1000-m005*100-m006*10;
    m009=m00-m004*10000-m005*1000-m006*100-m008*10;  
    dism00[4]=(char)(m004+0x30);
    dism00[5]=(char)(m004+0x30);
    dism00[6]=(char)(m004+0x30);
    dism00[8]=(char)(m008+0x30);
    dism00[9]=(char)(m009+0x30); 
       i=4; 	                    /*m00 Dispaly*/
	lcddb=0x98;
 	while(i<10)
    {    	 
	 lcdcom(lcddb);
	 lcddat(dism00[i]);
	 lcddb++; 	    
	 i++;	
    }
  
   
    m014=m01/10000;
    m015=m01/1000-m004*10;  
    m016=m01/100-m004*100-m005*10;
    m018=m01/10-m004*1000-m005*100-m006*10;
    m019=m01-m004*10000-m005*1000-m006*100-m008*10;  
    dism01[4]=(char)(m014+0x30);
    dism01[5]=(char)(m014+0x30);
    dism01[6]=(char)(m014+0x30);
    dism01[8]=(char)(m018+0x30);
    dism01[9]=(char)(m019+0x30); 
     i=4; 	                    /*m01 Dispaly*/
	lcddb=0xA2;
 	while(i<10)
    {    	 
	 lcdcom(lcddb);
	 lcddat(dism01[i]);
	 lcddb++; 	    
	 i++;	
    } 
    
    
    
    m03=CSDA;                         /*m03 Dispaly*/
    
    if((m03>=0x7AE)&&(m03<=0x850))
     { lcdcom(0x09);
	   lcddat(0x3E);
	   lcdcom(0x0A);
	   lcddat(0x3C);
     }
      else 
     { if(m03<0x7ff)
       n=m03/0xE3;
       i=1;
       lcddb=0x88;
 	  while(i<=n)
       {    	 
	    lcdcom(lcddb);
	    lcddat(0xFF);
	    lcddb--; 	    
	    i++;	
       } 
        
       if(m03>0x7ff)
       n=(m03-0x7FF)/0xE3;
       i=1;
       lcddb=0x8B;
 	  while(i<=n)
       {    	 
	    lcdcom(lcddb);
	    lcddat(0xFF);
	    lcddb++; 	    
	    i++;	
       } 
      }
   return;
   }   
 /****************自動運行************************/ 
  void automat()
  { int i,j;
    unsigned int lcddb;
    
    enable();	            	/* Enable all interrupts */
    CSLED=0x8000;
    i=0; 	                    
	lcddb=0xd4;
 	while(i<17)
    {    	 
	 lcdcom(lcddb);
	 lcddat(autom[i]);
	 lcddb++; 	    
	 i++;	
    }   
    
    
    i=0;                   /*定位循環*/
    while(i<2)
    { P_ins=p00[i]; 
    
 delay: IOSR=0x1800;  
        if(PT_counter<999)
        {  
          IOSR=0x1808;
          if(D_counter==9)
          { run_time_dispaly();}
          goto delay;
        }
      i++;
     
    } 
     
    IOSR=0x1800;
    
   return;
   }   
 /****************手動運行************************/
  void manual()
  { int i;
    unsigned int lcddb;
    
    enable();	            	/* Enable all interrupts */
    
    CSLED=0x1000;
    
    i=0; 	                   
	lcddb=0xd4;
 	while(i<12)
    {    	 
	 lcdcom(lcddb);
	 lcddat(manu[i]);
	 lcddb++; 	    
	 i++;	
    } 
  
  
   return;
   }   
 /****************示教************************/
  void autostudy()
  { int i;
    unsigned int lcddb;
    
    CSLED=0x2000;
    i=0; 	                  
	lcddb=0xd4;
 	while(i<12)
    {    	 
	 lcdcom(lcddb);
	 lcddat(manu[i]);
	 lcddb++; 	    
	 i++;	
    } 
  
  
   return;
   }   
 /*****************參數設定***********************/
  void paramselect()
  { int i;
    unsigned int lcddb;
    
    CSLED=0x0008;
    i=0; 	                    
	lcddb=0xd4;
 	while(i<10)
    {    	 
	 lcdcom(lcddb);
	 lcddat(param[i]);
	 lcddb++; 	    
	 i++;	
    } 
  
  
   return;
   }   
 /*****************復位***********************/
  void sysreset()
  { int i;
    unsigned int lcddb;
    
    CSLED=0x0200;
   
    enable();	            	/* Enable all interrupts */
    
    
    i=0; 	                    
	lcddb=0xd4;
 	while(i<12)
    {    	 
	 lcdcom(lcddb);
	 lcddat(reset[i]);
	 lcddb++; 	    
	 i++;	
    } 
  
   return;
   }        
 /*****************聯機***********************/
  void online()
  { int i;
    unsigned int lcddb;
   
   
    CSLED=0x4000; 
    i=0; 	                    
	lcddb=0xd4;
 	while(i<19)
    {    	 
	 lcdcom(lcddb);
	 lcddat(ready[i]);
	 lcddb++; 	    
	 i++;	
    } 
  
  
   return;
   }   
 
  /*****************遠程***********************/
  void l_d()
  { int i;
    unsigned int lcddb;
    
    
    CSLED=0x0040;
    i=0; 	                   
	lcddb=0xd4;
 	while(i<13)
    {    	 
	 lcdcom(lcddb);
	 lcddat(ld[i]);
	 lcddb++; 	    
	 i++;	
    } 
  
  
   return;
   }   
 /****************************************/
 /****************************************/
  
 main() 
 { 
   unsigned int  lcddb,butsample,butsample1;
   int m,i;  
   
   /*****System initialization*****/
   asm(" clrc CNF"); 
   
    disable();     /* Disable all interrupts */
    *IFR=0xFFFF;	/* Clear interrupts */
    *IMR=0x0006;	/* 中斷設定 */ 
    ICR=0x0015;      
    WSGR=0x0400;    /* Set  wait states */ 
  
   /******Timer initialization,采樣頻率1ms****/ 
	BRD=0x4E1F;     /* 加載定時器計數寄存器 */
	TIM=0xFFFF;     /* 加載定時器周期寄存器 */
	TCR=0x0c20;     /* 加載定時器控制寄存器 */

	ASPCR=0x000f;   /* IO0-IO3 are configed as output*/
   
   /**** LCD initialization Starts****/
   IOSR=0x1800;
     m=0;           
    while(m<=500)
    { m++; 
      lcddelay(); 
    } 
    lcddb=0x0001;   /*Dispaly Clear*/ 
	lcdcom(lcddb); 
	 m=0;
    while(m<=150)   /* delay*/
    {m++; 
     lcddelay(); 
    } 	 
    	
	lcddb=0x0038;  /* Set function */  
	lcdcom(lcddb); 
    m=0;  
    while(m<=150)    /* Delay*/
    {m++; 
     lcddelay(); 
    }
	 
	lcddb=0x000c;   /*Dispaly on/off*/
	lcdcom(lcddb);  
	
	lcddb=0x0006;   /*Entry mode set*/
	lcdcom(lcddb);	  
    lcddelay();    
 /****** LCD initialization Ends*****/ 
  
 /********System Parameters initialization starts*/
    P_ins=5;
    p10=27;
    p11=0;
    p12=10;
    p13=20;
    px2=0;
    px1=0;
    v2=0;
    v1=0;
    integral=0;
    
 /********System Parameters initialization ends*/
    CSLED=0x0000;
	CSDA=0x07ff;   /* Valve mid signal*/
 /***********************************************/ 
    i=0; 	                    /*Controller is ready*/
	lcddb=0xd4;
 	while(i<19)
    {    	 
	 lcdcom(lcddb);
	 lcddat(ready[i]);
	 lcddb++; 	    
	 i++;	
    }    
    i=0; 	                    /*m00 Dispaly*/
	lcddb=0x94;
 	while(i<10)
    {    	 
	 lcdcom(lcddb);
	 lcddat(dism00[i]);
	 lcddb++; 	    
	 i++;	
    }   
    
    i=0; 	                        /*m01 Dispaly*/
	lcddb=0x9E;
 	while(i<10)
    {    	 
	 lcdcom(lcddb);
	 lcddat(dism01[i]);
	 lcddb++; 	    
	 i++;	
    }   
    lcdcom(0x89);
	lcddat(0x3E);
	lcdcom(0x8A);
	lcddat(0x3C);
    
    
 /**** Initialization Ends*********/  
 
loop: IOSR=0x1800;
      
      butsample=0x8000;
       
   
      switch(butsample)
      {case 0x8000 : automat();break;
       case 0x4000 : online();break;
       case 0x2000 : autostudy();break;
       case 0x1000 : manual();break; 
       case 0x0200 : sysreset();break;  
       case 0x0040 : l_d();break; 
       case 0x0008 : paramselect();break;
       default : IOSR=0x1808; goto loop;
      }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美综合亚洲图片综合区| 国产精品天美传媒| 国产亚洲欧美中文| 一区二区久久久久| 国产福利一区二区| 91精品久久久久久久久99蜜臂| 国产精品每日更新在线播放网址| 看电视剧不卡顿的网站| 色哟哟一区二区在线观看| 久久久久综合网| 婷婷夜色潮精品综合在线| 91丨porny丨蝌蚪视频| www一区二区| 美女一区二区久久| 欧美日韩国产系列| 亚洲日本一区二区| 成人黄色软件下载| 国产色产综合色产在线视频| 美女免费视频一区二区| 欧美电视剧在线观看完整版| 亚洲国产综合视频在线观看| 成人激情免费网站| 久久久蜜桃精品| 激情综合色播五月| 日韩欧美三级在线| 日韩在线卡一卡二| 51精品久久久久久久蜜臀| 亚洲欧美偷拍卡通变态| av亚洲精华国产精华| 日本一区二区三区四区在线视频| 国产综合久久久久久久久久久久| 欧美一区中文字幕| 看片网站欧美日韩| 久久亚洲一区二区三区四区| 老司机精品视频一区二区三区| 91麻豆精品国产91久久久久久| 天天综合天天综合色| 欧美日韩美少妇| 日韩精品三区四区| 欧美一区二区三区精品| 欧美aaaaaa午夜精品| 日韩欧美视频在线| 国内精品伊人久久久久av影院| 日韩免费看网站| 国产一区二区在线免费观看| 久久精品人人做人人爽97| 国产91精品精华液一区二区三区 | 欧美日韩国产高清一区二区三区| 亚洲一区二区三区精品在线| 欧美丰满美乳xxx高潮www| 久久精品国产999大香线蕉| 2024国产精品| 国产成人鲁色资源国产91色综| 国产精品视频免费看| 色综合久久久网| 五月天欧美精品| 欧美不卡一区二区三区| 国产成人精品www牛牛影视| 亚洲欧洲日韩av| 欧美三级资源在线| 韩日精品视频一区| 亚洲视频你懂的| 91.麻豆视频| 国产成人精品影院| 亚洲二区在线观看| 久久久久国色av免费看影院| 色综合久久综合中文综合网| 欧美aaaaa成人免费观看视频| 久久精品日韩一区二区三区| 色94色欧美sute亚洲线路二| 欧美a一区二区| 亚洲欧美日韩系列| 日韩一区二区免费在线电影| av亚洲精华国产精华精华| 日本不卡不码高清免费观看| 国产精品看片你懂得| 8v天堂国产在线一区二区| 成人性视频免费网站| 亚洲成人久久影院| 亚洲国产精品精华液ab| 在线91免费看| 91在线云播放| 国产一区二区电影| 日韩黄色免费电影| 亚洲欧美日韩小说| 国产精品天美传媒沈樵| 日韩一级大片在线观看| 91久久精品一区二区三区| 国产精品亚洲成人| 日韩精品三区四区| 亚洲愉拍自拍另类高清精品| 欧美激情一区二区三区在线| 日韩精品中午字幕| 欧美日韩国产影片| 色视频一区二区| 成人av电影观看| 韩国精品免费视频| 日本不卡中文字幕| 亚洲高清久久久| 亚洲一区二区三区四区中文字幕| 国产精品―色哟哟| 久久日一线二线三线suv| 91精品国产综合久久蜜臀 | 日本一区二区三区dvd视频在线| 欧美日韩精品一二三区| 91网上在线视频| 丰满白嫩尤物一区二区| 韩国v欧美v亚洲v日本v| 久久精品国产久精国产| 午夜欧美2019年伦理| 亚洲午夜激情av| 亚洲老妇xxxxxx| 亚洲欧美中日韩| 国产精品毛片久久久久久久| 国产精品私人影院| 国产欧美日韩精品一区| 国产午夜精品美女毛片视频| 精品国产网站在线观看| 精品日韩99亚洲| 日韩欧美色综合网站| 精品国产网站在线观看| 久久人人97超碰com| 久久女同精品一区二区| 久久久综合视频| 欧美激情一二三区| 国产精品久久久久久久浪潮网站 | 午夜久久久影院| 日韩精品成人一区二区三区| 日韩精品一卡二卡三卡四卡无卡| 婷婷成人激情在线网| 奇米影视一区二区三区| 久久精品久久精品| 精品综合免费视频观看| 黄色日韩网站视频| 成人精品视频一区二区三区尤物| 99re成人精品视频| 欧美日韩一区精品| 日韩一级片在线播放| 久久免费国产精品| 亚洲欧洲国产日本综合| 日韩高清电影一区| 国产·精品毛片| 色琪琪一区二区三区亚洲区| 在线播放视频一区| 久久精品日韩一区二区三区| 亚洲女同一区二区| 日本女人一区二区三区| 成人深夜视频在线观看| 欧美影院一区二区| 欧美变态tickle挠乳网站| 国产精品毛片久久久久久 | 亚洲三级久久久| 午夜婷婷国产麻豆精品| 国产成人免费在线| 在线日韩av片| www日韩大片| 亚洲一区二区影院| 国产精品一品二品| 欧美色网站导航| 欧美韩日一区二区三区四区| 亚洲国产中文字幕在线视频综合| 激情深爱一区二区| 欧美日韩午夜在线| 亚洲婷婷综合久久一本伊一区| 午夜视频一区在线观看| 99久久99久久久精品齐齐| 69堂精品视频| 亚洲伦在线观看| 国产一区二区三区在线观看免费视频| 在线观看视频一区二区欧美日韩| 日韩精品专区在线| 亚洲国产精品欧美一二99| 国产不卡在线一区| 日韩午夜中文字幕| 亚洲国产欧美在线| 波多野结衣在线aⅴ中文字幕不卡| 欧美一区二区三区视频在线| 亚洲激情图片小说视频| av资源站一区| 久久综合色8888| 久久精品国产色蜜蜜麻豆| 欧美日韩视频在线第一区| 中文字幕一区二区三区在线观看| 精品一区二区三区影院在线午夜| 欧美视频一区二区在线观看| 亚洲欧美日韩久久精品| 成人小视频免费在线观看| 精品国产凹凸成av人导航| 天堂一区二区在线| 色嗨嗨av一区二区三区| 亚洲欧洲色图综合| 国产成人一区在线| 久久综合色天天久久综合图片| 午夜视频一区在线观看| 色94色欧美sute亚洲13| 亚洲欧美一区二区三区久本道91| av中文字幕在线不卡| 最新不卡av在线| 91在线免费视频观看| 国产精品超碰97尤物18|