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

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

?? motorctrl.c

?? PID控制,包括算法,控制階梯列表,算法步進
?? C
?? 第 1 頁 / 共 2 頁
字號:
		{
	   		zeroCount=0;
			if(zero<ZEROSPEED)
			{
				if(read_menudata(JDQ1)==0)
				{
					Ctrldata[JIDIANQI] |=BIT0;
				}
				else
				{
					Ctrldata[JIDIANQI] &=(~BIT0);
				}
				zeroflag=1;
			}
			else
			{
				Ctrldata[JIDIANQI] &=(~BIT0);
				zeroflag=0;
			}
			zero = 0;
		}
	
		else
		{
			zero+=read_menudata(SPDFB)+read_menudata(SPEEDSET);//累加
		}
	}
}
//----------------------------------------------------------------
//	函數名稱:fact
//	輸入參數:int a:需要定標的值
//					unsigned int b:定標用比例因子
//	輸出參數:int :定標后值
//	功能描述:通過定標因子來改變輸入參數的范圍
//----------------------------------------------------------------
int fact(int a,unsigned int b)
{
	long x1,x2;
	x1=a;
	x2=read_menudata(b);
	switch(b)
	{
		case SPDFACT:		//速度定標
			x1=x1*x2/1024;
			break;
		case VOLTFACT:		//硬速定標
			x1=x1*x2/1024;
			break;
		case CRTFACT:		//轉矩定標
			x1=x1*x2/1024;
			break;
		default:
			x1=0;
	}
	return((int)x1);
}

//----------------------------------------------------------------
//	函數名稱:ext_ctrl
//	輸入參數:無
//	輸出參數:無
//	功能描述:選擇給定方式具體如下:
//					如果非運行狀態,點動按下,則為點動給定
//					如果為運行狀態,則
//					給定方式為0則模擬給定,模擬差量
//								       1則模擬給定數字差量
//									2則數字給定,在這種方式下,
//									  若按下數字升或數字降,則為數字升降
//									3則硬速度給定
//									4則開環控制
//----------------------------------------------------------------
void ext_ctrl()
{
	int pbstate;
	int speedMax;
	int speedMin;
	int i,j;
	
	pbstate=read_menudata(ERRSET);
	speedMax=read_menudata(SPDMAX);
	speedMin=read_menudata(SPDMIN);
	//------------------點動給定----------------------
	if(pbstate & BIT1)//非運行狀態
	{
		if(!(pbstate & BIT2))//點動給定按下
		{
		    pointGive=1;
			i=read_menudata(POINTSET);//寫速度給定菜單
			if(i>=speedMax)
			{
				i=speedMax;
			}
			else if(i<=speedMin)
			{
				i=speedMin;
			}
			write_menudata(SPEEDSET,i);
			if(read_menudata(DIANXIE_EN)==0)//斜率為0則速度不變
			{
				Ctrldata[GEIDING]=i;
			}
			else
			{
				if(Ctrldata[GEIDING]<i)//升斜坡函數
				{
					j=read_menudata(POINTXIELV);//計算點動斜率
					if(j==0)
					{
						Ctrldata[GEIDING]=i;
					}
					else
					{
						Ctrldata[STEP]=1000/j;
						if((i-Ctrldata[STEP])>Ctrldata[GEIDING])
							Ctrldata[GEIDING]+=Ctrldata[STEP];//斜坡
						else
							Ctrldata[GEIDING]=i;
					}
				}
				else//穩定給定
				{
					Ctrldata[GEIDING]=i;
				}
			}
			i=Ctrldata[GEIDING];//回寫最終給定菜單項
			write_menudata(SPDSET,i);
			return;
		}
		else//一切中間控制變量歸零
		{
			e_speed[0]=0;
			e_speed[1]=0;
			e_current[0]=0;
			e_current[1]=0;
			Ctrldata[SENDOUT]=0;//30000;
			Ctrldata[CRTRF]=0;
			pointGive = 0;
			Ctrldata[GEIDING]=0;
		}
	}
	
	//---------------------數字給定-----------------------
	if(read_menudata(SETWAY)==2)//運行狀態下-數字給定
	{
		i=read_menudata(KEYSET);//寫速度給定菜單
		if(i>=speedMax)
		{
			i=speedMax;
		}
		else if(i<=speedMin)
		{
			i=speedMin;
		}
		if(i==0)
		{
			e_speed[0]=0;
			e_speed[1]=0;
			e_current[0]=0;
			e_current[1]=0;
			Ctrldata[SENDOUT]=0;//30000;
			Ctrldata[CRTRF]=0;
			Ctrldata[GEIDING]=0;		 
		}
		write_menudata(KEYSET,i);
		write_menudata(SPEEDSET,i);
				//鍵盤給定
		i=read_menudata(SPEEDSET);// 速度給定
		if(read_menudata(XIELV_EN)==0)
		{
			Ctrldata[GEIDING]=i;
		}
		else
		{
			if(Ctrldata[GEIDING]<i)//升斜坡函數
			{
				j=read_menudata(UPXIELV);//計算點動步進
					if(j==0)
					{
						Ctrldata[GEIDING]=i;
					}
					else
					{
						Ctrldata[STEP]=1000/j;
						Ctrldata[GEIDING]+=Ctrldata[STEP];//斜坡
						if(Ctrldata[GEIDING]>i)	
							Ctrldata[GEIDING]=i;
					}
				}
			else if(Ctrldata[GEIDING]>i)//降斜坡函數
			{	
				j=read_menudata(DOWNXIELV);//計算點動步進
					if(j==0)
					{
						Ctrldata[GEIDING]=i;
					}
					else
					{
						Ctrldata[STEP]=1000/j;
						Ctrldata[GEIDING]-=Ctrldata[STEP];//斜坡
						if(Ctrldata[GEIDING]<i)	
							Ctrldata[GEIDING]=i;
					}		
			}
			else//穩定給定
			{
				Ctrldata[GEIDING]=i;
			}
			disall();
		}
		i=Ctrldata[GEIDING];//回寫最終給定菜單項
		write_menudata(SPDSET,i);
				//數字升
		if(!(pbstate & BIT3))//數字升 && 非模擬給定
		{
			i=read_menudata(DUPXIELV);//計算數字升步進
			Ctrldata[STEP]=(j==0)? 1000:1000/i;	
			i=read_menudata(KEYSET);
			if(i<speedMax)//斜坡函數
			{
				i+=Ctrldata[STEP];
				if(i>speedMax)
					i=speedMax;	
			}
			write_menudata(KEYSET,i);
			disall();
		}
		
				//數字降	
		else if(!(pbstate & BIT4))//數字降 && 非模擬給定
		{
			i=read_menudata(DDOWNXIELV);//計算數字降步進			
			Ctrldata[STEP]=(j==0)? 1000:1000/i;			
			i=read_menudata(KEYSET);
			if(i>speedMin)//斜坡函數
			{
				i-=Ctrldata[STEP];
			}
			write_menudata(KEYSET,i);
			disall();
		}
		if(i<0)
		{
			i=0;
			e_speed[0]=0;
			e_speed[1]=0;
			e_current[0]=0;
			e_current[1]=0;
			Ctrldata[SENDOUT]=0;//30000;
			Ctrldata[CRTRF]=0;
			Ctrldata[GEIDING]=0; 							
		}
	}

			//硬速度給定
	if(read_menudata(SETWAY)==3)//運行狀態下-硬速度給定-無斜坡
	{
		i=fact(Ctrldata[HARDSPDSET],CRTFACT);
		if(i>=speedMax)
		{
			i=speedMax;
		}
		else if(i<=speedMin)
		{
			i=speedMin;
		}
		write_menudata(SPEEDSET,i);
		i=Ctrldata[GEIDING];//回寫最終給定菜單項
		write_menudata(SPDSET,i);
		i=read_menudata(SPEEDSET);//速度給定
		if(i <= 0)
		{
			e_speed[0]=0;
			e_speed[1]=0;
			e_current[0]=0;
			e_current[1]=0;
			Ctrldata[SENDOUT]=0;//30000;
			Ctrldata[CRTRF]=0;
			Ctrldata[GEIDING]=0;
		}		
		else
		{
			i=read_menudata(SPEEDSET);// 速度給定
			if(read_menudata(XIELV_EN)==0)
			{
				Ctrldata[GEIDING]=i;
			}
			else
			{
				if(Ctrldata[GEIDING]<i)//升斜坡函數
				{
					j=read_menudata(UPXIELV);//計算步進
					if(j==0)
					{
						Ctrldata[GEIDING]=i;
					}
					else
					{
						Ctrldata[STEP]=1000/j;
						Ctrldata[GEIDING]+=Ctrldata[STEP];//斜坡
						if(Ctrldata[GEIDING]>i)	
							Ctrldata[GEIDING]=i;
					}
				}
				else if(Ctrldata[GEIDING]>i)//降斜坡函數
				{
					j=read_menudata(DOWNXIELV);//計算步進
					if(j==0)
					{
						Ctrldata[GEIDING]=i;
					}
					else
					{
						Ctrldata[STEP]=1000/j;
						Ctrldata[GEIDING]-=Ctrldata[STEP];//斜坡
						if(Ctrldata[GEIDING]<i)	
							Ctrldata[GEIDING]=i;
					}			
				}
				else//穩定給定
				{
					Ctrldata[GEIDING]=i;
				}
			}
		}
	}

			//開環控制
	if(read_menudata(SETWAY)==4)//開環控制
	{
		i=read_menudata(KEYSET);//寫速度給定菜單
		if(i>=speedMax)
		{
			i=speedMax;
		}
		else if(i<=speedMin)
		{
			i=speedMin;
		}
		if(i==0)
		{
			e_speed[0]=0;
			e_speed[1]=0;
			e_current[0]=0;
			e_current[1]=0;
			Ctrldata[SENDOUT]=0;
			Ctrldata[CRTRF]=0;
			Ctrldata[GEIDING]=0;		 
		}
		Ctrldata[GEIDING]=i;
		write_menudata(KEYSET,i);
		write_menudata(SPEEDSET,i);
		write_menudata(SPDSET,i);
		disall();
	}

			//模擬給定,數字差
	if(read_menudata(SETWAY)==1)// 模擬給定
	{
		i=fact(spdgive,SPDFACT);
		if(i>=speedMax)
		{
			i=speedMax;
		}
		else if(i<=speedMin)
		{
			i=speedMin;
		}
		write_menudata(SPEEDSET,i);
		i=read_menudata(SPEEDSET);// 速度給定
		if(read_menudata(XIELV_EN)==0)
		{
			Ctrldata[GEIDING]=i;
		}
		else
		{
			if(Ctrldata[GEIDING]<i)//升斜坡函數
			{
				j=read_menudata(UPXIELV);//計算點動步進
					if(j==0)
					{
						Ctrldata[GEIDING]=i;
					}
					else
					{
						Ctrldata[STEP]=1000/j;
						Ctrldata[GEIDING]+=Ctrldata[STEP];//斜坡
						if(Ctrldata[GEIDING]>i)	
							Ctrldata[GEIDING]=i;
					}
			}
			else if(Ctrldata[GEIDING]>i)//降斜坡函數
			{
				j=read_menudata(DOWNXIELV);//計算點動步進
					if(j==0)
					{
						Ctrldata[GEIDING]=i;
					}
					else
					{
						Ctrldata[STEP]=1000/j;
						Ctrldata[GEIDING]-=Ctrldata[STEP];//斜坡
						if(Ctrldata[GEIDING]<i)	
							Ctrldata[GEIDING]=i;
					}			
			}
			else//穩定給定
			{
				Ctrldata[GEIDING]=i;
			}
		}
		if((read_menudata(SPEEDSET)==0) && (read_menudata(SPDSET)==0))
		{
			e_speed[0]=0;
			e_speed[1]=0;
			e_current[0]=0;
			e_current[1]=0;
			Ctrldata[SENDOUT]=0;//30000;
			Ctrldata[CRTRF]=0;
			Ctrldata[GEIDING]=0;
		}
		i=Ctrldata[GEIDING];//回寫最終給定菜單項
		write_menudata(SPDSET,i);		
	}

			//模擬給定,模擬差,無斜坡
	if(read_menudata(SETWAY)==0)// 模擬給定
	{
		i=spdgive;
		if(i>=speedMax)
		{
			i=speedMax;
		}
		else if(i<=speedMin)
		{
			i=speedMin;
		}
		Ctrldata[GEIDING]=i;
		write_menudata(SPEEDSET,i);
		write_menudata(SPDSET,i);	
		if((read_menudata(SPEEDSET)==0) && (read_menudata(SPDSET)==0))
		{
			e_speed[0]=0;
			e_speed[1]=0;
			e_current[0]=0;
			e_current[1]=0;
			Ctrldata[SENDOUT]=0;
			Ctrldata[CRTRF]=0;
			Ctrldata[GEIDING]=0;
		}
	}
	return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂精品视频| 日韩午夜中文字幕| 亚洲人成网站精品片在线观看| 国产精品一级片在线观看| 欧美大白屁股肥臀xxxxxx| 理论电影国产精品| 日韩西西人体444www| 国产精品羞羞答答xxdd| 久久久久久久久久久久久女国产乱| 精品一区二区三区免费视频| 国产人久久人人人人爽| www.久久精品| 午夜久久久久久久久| 欧美日韩一区二区三区免费看 | 蜜臀久久久99精品久久久久久| 欧美丰满少妇xxxbbb| 久久se这里有精品| 国产精品女人毛片| 91国产丝袜在线播放| 日本va欧美va欧美va精品| 国产亚洲va综合人人澡精品| 色狠狠av一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 国产亚洲欧美日韩俺去了| 99精品视频在线观看| 日韩成人午夜精品| 日韩欧美黄色影院| 国产盗摄一区二区| 亚洲一卡二卡三卡四卡无卡久久 | 精品国产伦理网| 成人午夜精品一区二区三区| 亚洲国产精品一区二区www| 日韩一级精品视频在线观看| 不卡一区二区中文字幕| 日韩中文字幕av电影| 国产精品污www在线观看| 678五月天丁香亚洲综合网| 国产福利视频一区二区三区| 亚洲亚洲精品在线观看| 精品国产一区久久| 欧美视频一区二区| 成人免费三级在线| 日韩电影在线免费| 一区免费观看视频| 日韩欧美色综合网站| 99国产精品视频免费观看| 精品一区二区三区久久久| 一区二区三区久久久| 国产亚洲成aⅴ人片在线观看 | 一区二区日韩电影| 久久精品人人做| 91精品国产乱码久久蜜臀| 不卡av在线免费观看| 国产一区在线看| 日韩电影免费一区| 一区二区三区日韩精品视频| 亚洲欧洲国产日韩| 精品久久久网站| 欧美一区在线视频| 欧美日韩久久久久久| 99久久国产免费看| 久久激情五月婷婷| 男人的天堂久久精品| 午夜久久久久久久久久一区二区| 亚洲欧洲日韩在线| 中文一区二区完整视频在线观看| 欧美变态tickle挠乳网站| 欧美日韩国产小视频在线观看| 91美女视频网站| 99国产精品久久久久久久久久 | 亚洲一二三四区| 亚洲综合成人在线| 久久精工是国产品牌吗| 日韩电影网1区2区| 日韩和欧美的一区| 亚洲图片欧美色图| 亚洲精品高清在线| 亚洲精品一二三| 国产精品久久久久婷婷| 中文字幕日韩一区| 亚洲人成在线播放网站岛国| 亚洲少妇最新在线视频| 亚洲欧洲色图综合| 一区二区免费在线| 亚洲精品美国一| 亚洲bt欧美bt精品777| 综合激情成人伊人| 一区二区三区高清不卡| 亚洲成a人v欧美综合天堂| 香蕉加勒比综合久久| 青青草一区二区三区| 久久激情五月激情| 国产成人综合亚洲91猫咪| 成人精品视频.| 成人一二三区视频| 91在线观看一区二区| 日本二三区不卡| 欧美放荡的少妇| 欧美v国产在线一区二区三区| 久久色在线观看| 国产精品久久久久久久久晋中| 亚洲欧美怡红院| 亚洲精品国产一区二区三区四区在线| 亚洲成国产人片在线观看| 美女精品一区二区| 成人丝袜18视频在线观看| 色吧成人激情小说| 欧美日韩小视频| 国产亚洲短视频| 亚洲色图视频网站| 欧美aaaaaa午夜精品| 国产成都精品91一区二区三| 欧美亚洲日本一区| 久久综合久久综合久久| 亚洲精品一二三| 国产在线不卡一区| 97精品国产露脸对白| 欧美性大战xxxxx久久久| 欧美精品一区二区三区很污很色的 | 麻豆精品视频在线观看视频| 成人一区二区三区中文字幕| 欧美色视频在线观看| 欧美电影免费观看高清完整版在线 | 99精品国产热久久91蜜凸| 欧美性生活影院| 久久久久久夜精品精品免费| 亚洲高清免费在线| 国产精品91xxx| 欧美日韩视频一区二区| 国产亚洲精品资源在线26u| 亚洲va欧美va天堂v国产综合| 国产精品18久久久久久久网站| 欧美三级电影网站| 中文字幕中文字幕在线一区 | 亚洲成a人v欧美综合天堂下载| 国产精品一区二区视频| 欧美伦理电影网| 亚洲天堂网中文字| 麻豆91精品视频| 欧美视频在线不卡| 亚洲人快播电影网| 成人性生交大片免费看视频在线| 欧美一级片免费看| 一区二区三区中文字幕精品精品| 国产在线播放一区| 欧美一区二区三区四区五区| 亚洲韩国一区二区三区| jlzzjlzz欧美大全| 久久在线观看免费| 日韩在线一二三区| 欧美影院精品一区| 亚洲欧美国产三级| 91片黄在线观看| 国产精品久久777777| 国产成人午夜高潮毛片| 欧美精品一区二区三区蜜桃| 蜜臀久久久99精品久久久久久| 欧美久久久久久久久中文字幕| 一区二区三区免费观看| 日本福利一区二区| 亚洲综合另类小说| 欧美性淫爽ww久久久久无| 玉足女爽爽91| 欧美性生交片4| 丝袜亚洲另类欧美| 欧美一区二区三区日韩视频| 手机精品视频在线观看| 在线成人av网站| 日本麻豆一区二区三区视频| 91精品国产综合久久精品app| 午夜精品久久久久久| 777午夜精品视频在线播放| 日本色综合中文字幕| 欧美一区二区三区视频免费播放| 午夜久久福利影院| 91视频.com| 亚洲福利一区二区| 色哟哟一区二区在线观看| 日韩一区二区电影网| 天天综合日日夜夜精品| 欧美无砖专区一中文字| 亚洲一二三四久久| 欧美一区日本一区韩国一区| 亚洲国产成人va在线观看天堂| 欧美网站一区二区| 日本人妖一区二区| 精品乱人伦一区二区三区| 青草国产精品久久久久久| 欧美精品电影在线播放| 日韩专区中文字幕一区二区| 欧美日韩精品欧美日韩精品一 | 国产精品的网站| 国产成人综合视频| 国产精品青草综合久久久久99| 91麻豆蜜桃一区二区三区| 亚洲午夜在线观看视频在线| 欧美午夜精品免费| 国产揄拍国内精品对白| 欧美激情艳妇裸体舞| 91亚洲精品久久久蜜桃网站|