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

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

?? pi.c

?? 為BLDC的電流環控制
?? C
字號:
/*
***********************************************************************
* For test BLDC
* 2008-1-7
***********************************************************************
*/
//=============================================//
//Include File
//=============================================//
#include	"Spmc75f2313a.h"
#include	"Spmc_typedef.h"
#include "config.h"

static PID sPID;
PID *sptr = &sPID;
static CONTROLSM sCtrlSM;
static CONTROLSM *sCSptr = &sCtrlSM;
UInt16 cnt[200];
UInt16 *cntptr=cnt;
UInt8  step;

UInt16 CountEn,Count;

static unsigned int uiFilter[FILTERLEN]={0};
static unsigned int *ptr = uiFilter;
static long summation = 0;

extern UInt16 adcnt;
extern UInt16 iav;
int motorposition = 1;
//=============================================//
//120度方波控制信號PWM加入方式選擇及正反轉選擇
//=============================================//
#define		Turnaround		6
/*
	0 -- 正轉、上相PWM120度方波
	1 -- 反轉、上相PWM120度方波
	2 -- 正轉、下相PWM120度方波
	3 -- 反轉、下相PWM120度方波
	
	4 -- 正轉、前半相PWM120度方波
	5 -- 反轉、前半相PWM120度方波
	6 -- 正轉、后半相PWM120度方波
	7 -- 反轉、后半相PWM120度方波	
*/
//=============================================//
//=============================================//

/*
**********************************************************************
*
* PI init
*
**********************************************************************
*/

void DK_motor_init(void)
{
	sCSptr->B._direction = CCW;
	CountEn = DISABLE;
}
/*
**********************************************************************
*
* start pro
*
**********************************************************************
*/
void DK_start()
{
	
	IncPIDInit();
	sptr->SetPoint   = 256;
	sptr->LowRange = 200;
	sptr->HighRange = 500;
	sCSptr->B._startup = ENABLE;
	/*if(sCSptr->B._direction)
		BLDC_Test4_NU120FullPWM(P_POS1_DectData->W);
	else
		BLDC_Test4_PU120FullPWM(P_POS1_DectData->W);*/
	//P_TMR_Start->B.TMR4ST |= CB_TMR_TMR4ST_Start;
	

}

void DK_stop()
{
	sCSptr->B._startup = DISABLE;
	//P_TMR_Start->B.TMR4ST &= (~CB_TMR_TMR4ST_Start);
	P_TMR4_OutputCtrl->W = CW_TMR4_POLP_Active_High	|	\
						CW_TMR4_UPWM_Out_HL | CW_TMR4_UOC_Mode1 |\
						CW_TMR4_VPWM_Out_HL  | CW_TMR4_VOC_Mode1 |\
						CW_TMR4_WPWM_Out_HL  | CW_TMR4_WOC_Mode1;
	F_Delay(10);
	P_TMR4_OutputCtrl->W = CW_TMR4_POLP_Active_High	|	\
						CW_TMR4_UPWM_Out_HL | CW_TMR4_UOC_Mode0 |\
						CW_TMR4_VPWM_Out_HL  | CW_TMR4_VOC_Mode0 |\
						CW_TMR4_WPWM_Out_HL  | CW_TMR4_WOC_Mode0;
	
}


/**********************************************************************
*
* change direction
*
**********************************************************************
*/
void DK_change(UInt16 speed)
{
	sptr->SetPoint=speed;
}


/**********************************************************************
*
* change direction
*
**********************************************************************
*/
void DK_move(UInt16 speed)
{
	UInt8 count,i,tmp1,tmp2;
	
	count=0;
	IncPIDInit();
	sptr->SetPoint   = 670;
	sptr->LowRange = 600;
	sptr->HighRange = 850;
	CountEn=ENABLE;
	Count=0;
	sCSptr->B._startup = ENABLE;
	
	while(Count<=11);
	
	sCSptr->B._startup = DISABLE;
	P_TMR4_OutputCtrl->W = CW_TMR4_POLP_Active_High	|	\
						CW_TMR4_UPWM_Out_HL | CW_TMR4_UOC_Mode1 |\
						CW_TMR4_VPWM_Out_HL  | CW_TMR4_VOC_Mode1 |\
						CW_TMR4_WPWM_Out_HL  | CW_TMR4_WOC_Mode1;
	F_Delay(2);
	P_TMR4_OutputCtrl->W = CW_TMR4_POLP_Active_High	|	\
						CW_TMR4_UPWM_Out_HL | CW_TMR4_UOC_Mode0 |\
						CW_TMR4_VPWM_Out_HL  | CW_TMR4_VOC_Mode0 |\
						CW_TMR4_WPWM_Out_HL  | CW_TMR4_WOC_Mode0;

	CountEn=DISABLE;
	/* BLDC_Test4_PU120FullPWM(3);
	 P_TMR4_TGRA->W = MID2PWM;
	 P_TMR4_TGRD->W = MID2PWM  >>1;
	 P_TMR_LDOK->W = CW_TMR_LDOK1;
	 while((HALL>>5)!=2);
	 P_TMR4_TGRA->W = MINPWM;
	 P_TMR4_TGRD->W = MINPWM  >>1;
	 P_TMR_LDOK->W = CW_TMR_LDOK1;
	 
	P_TMR4_OutputCtrl->W = CW_TMR4_POLP_Active_High	|	\
	CW_TMR4_UPWM_Out_HL | CW_TMR4_UOC_Mode0 |\
	CW_TMR4_VPWM_Out_HL  | CW_TMR4_VOC_Mode0 |\
	CW_TMR4_WPWM_Out_HL  | CW_TMR4_WOC_Mode0;*/
}



/*****************************************************************************/
/* TPM4_ISR(): TPM4 period interrupt service routine						 */
/*****************************************************************************/
void TPM4_ISR(UInt16 hall)
{		
		if(sCSptr->B._startup == ENABLE)
			BLDC_Test4_NU120FullPWM(hall>>5);
}



/*=================================================================*/
/*BLDC 啟動                          */
/*=================================================================*/
void BLDC_Motor_Startup(void)
{
	P_TMR0_Status->B.TCVIF = 1;
	if(sCSptr->B._startup==ENABLE)
	{		
		if(sCSptr->B._direction)
			BLDC_Test4_NU120FullPWM(P_POS1_DectData->W);
		else
			BLDC_Test4_PU120FullPWM(P_POS1_DectData->W);
	}
}

/*=================================================================*/
/*BLDC 正常運轉                          */
/*=================================================================*/
void BLDC_Motor_Normalrun(UInt8 port)
{	UInt8 i;

//	P_TMR0_Status->B.PDCIF = 1;
	if(sCSptr->B._startup==ENABLE)
	{
		Speedcalc();	
		if(port == 3)
		{
			/*if(sCSptr->B._direction)
				BLDC_Test3_NU120FullPWM(P_POS0_DectData->W);
			else
				BLDC_Test3_PU120FullPWM(P_POS0_DectData->W);*/
		}
		else if(port == 4)
		{
			/*if(sCSptr->B._direction)
				BLDC_Test4_NU120FullPWM(P_POS1_DectData->W);
			else
				BLDC_Test4_PU120FullPWM(P_POS1_DectData->W);*/
		}
	}
}
/*=================================================================*/
/*BLDC 調速                          */
/*=================================================================*/
void BLDC_Motor_Actiyator(void)
{
	unsigned int uiSpeed = 0;

	if(sCSptr->B._startup)
	{
		//uiSpeed = 1875000L/(summation>>SHIFTDIV);		//計算速度

		if(iav<sptr->LowRange)
		{
			sptr->IncPoint += IncPIDCalc(iav);


		}
		else
		{
			if(iav>sptr->HighRange)
			{
				sptr->IncPoint += DecPIDCalc(iav);
			}

		}
			if(sptr->IncPoint > MAXPWM)	
				sptr->IncPoint = MAXPWM;
			if(sptr->IncPoint < MINPWM)	
				sptr->IncPoint = MINPWM;
			P_TMR4_TGRA->W = sptr->IncPoint;
			P_TMR4_TGRD->W = sptr->IncPoint  >>1;
			P_TMR_LDOK->W = CW_TMR_LDOK1;
		

	}
}
/*=================================================================*/
/*																   */
/*=================================================================*/
void Speedcalc(void)
{
	unsigned int original;

	original = P_TMR1_TGRA->W;
	//original=800;
	if(original > 469)			//最高轉速限制在4000rpm(RADIX/4000)
	{
		summation -= *ptr;		//滑動濾波
		*ptr = original;
		summation += *ptr;
		if((++ptr) > (uiFilter+CAPBSIZE-1))		ptr = uiFilter;
	}
}


void IncPIDInit(void)
{	UInt8 i;
	
	sptr->IncPoint  = MID2PWM;
    	sptr->LastError = 0;
    	sptr->PrevError = 0;
	
	sptr->ProportionDec = KPP;
	sptr->ProportionInc= KPP/2;
    	sptr->Integral   = KPI;
    	sptr->Derivative = KPD;
    	sptr->SetPoint   = SETSPD;
	sptr->LowRange = SETSPD-100;
	sptr->HighRange = SETSPD+100;

	for(i=0;i<CAPBSIZE;i++)	uiFilter[i] = 0;
	ptr= uiFilter;
	summation = 0;
	sCSptr->B._startup = DISABLE;
}

/*=================================================================*/
/*   Increment PID計算                          */
/*=================================================================*/
static int IncPIDCalc(unsigned int NextPoint)
{
	register int dError, incpid;

	dError = sptr->SetPoint - NextPoint;

	incpid = sptr->ProportionInc* dError;
           //- sptr->Integral   * sptr->LastError;
          // + sptr->Derivative * sptr->PrevError;

	sptr->PrevError = sptr->LastError;
	sptr->LastError = dError;
	
	return(incpid);
}

UInt8 ReadHall()
{ 	UInt8  hall;

	hall = ((P_IOC_Data->W)&0x00e0)>>5;
	return (hall);
}

UInt8 ReadHallState()
{  UInt8 tmp1,tmp2,tmp3;
    UInt8 i,j;
	
	j=5;
	tmp1=ReadHall();

	tmp2=ReadHall();

	
	if( tmp1 != tmp2)
		return (0x01);
	else
		return (0xff);
	
}

static int DecPIDCalc(unsigned int NextPoint)
{
	register int dError, incpid;

	dError = sptr->SetPoint - NextPoint;

	incpid = sptr->ProportionDec* dError;
	sptr->LastError = dError;
	
	return(incpid);
}


/*=================================================================*/
/*	*END*                          */
/*=================================================================*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱人伦中文| 91福利区一区二区三区| 亚洲伦理在线免费看| 亚洲精品一区二区在线观看| 色综合久久中文字幕综合网| 国产精品夜夜爽| 久久99精品国产麻豆婷婷洗澡| 亚洲视频精选在线| 久久久九九九九| 欧美大白屁股肥臀xxxxxx| 欧美精三区欧美精三区| 色综合久久久久综合99| 丁香六月久久综合狠狠色| 精一区二区三区| 国产精品高潮呻吟| 亚洲免费观看高清完整版在线观看熊| 久久亚洲精精品中文字幕早川悠里| 欧美精品色一区二区三区| 欧美在线高清视频| 欧美一区二区私人影院日本| 欧美日韩综合色| 欧美日韩亚洲丝袜制服| 91理论电影在线观看| 欧美三级午夜理伦三级中视频| 91福利国产精品| 欧美体内she精高潮| 欧美日本不卡视频| 欧美www视频| 久久久五月婷婷| 国产欧美日韩三区| 中文字幕一区二区日韩精品绯色| 国产精品丝袜91| 亚洲人午夜精品天堂一二香蕉| 中文字幕中文在线不卡住| 亚洲视频在线观看三级| 中文字幕中文在线不卡住| 婷婷久久综合九色综合绿巨人| 午夜天堂影视香蕉久久| 日本怡春院一区二区| 激情六月婷婷久久| 国产一区二区三区免费播放| 国产成都精品91一区二区三| 成人a区在线观看| 欧美综合久久久| 91精品国产色综合久久久蜜香臀| 亚洲精品一区二区三区四区高清 | 久久久国产精华| 国产精品区一区二区三| 亚洲一区二区三区爽爽爽爽爽| 老汉av免费一区二区三区| 国产九九视频一区二区三区| 91欧美一区二区| 欧美刺激午夜性久久久久久久| 久久久精品国产免费观看同学| 亚洲乱码国产乱码精品精98午夜| 日韩av不卡一区二区| 国产精品自产自拍| 丰满亚洲少妇av| 日韩女优av电影| 亚洲美女在线国产| 韩国女主播一区二区三区| 色综合色综合色综合| 国产视频一区在线观看| 亚洲成人动漫一区| 国产成人精品在线看| 欧美日本韩国一区| 亚洲一区二区av电影| 国产剧情一区二区| 欧美一区二区女人| 亚洲欧洲综合另类| 精品一区二区三区影院在线午夜| 91福利社在线观看| 国产精品美日韩| 精品一区二区三区的国产在线播放| 成人午夜视频网站| 亚洲国产精品ⅴa在线观看| 免费人成在线不卡| 欧美丝袜第三区| 亚洲视频网在线直播| 精品不卡在线视频| 国产一二三精品| 欧美电影免费提供在线观看| 一区二区三区国产精品| 成人av片在线观看| 久久综合狠狠综合久久综合88 | 男女男精品视频网| 日本电影欧美片| 亚洲另类在线制服丝袜| 老司机精品视频在线| 91精品国产综合久久精品性色| 一区二区三区丝袜| 色激情天天射综合网| 最新国产の精品合集bt伙计| 久久99国产精品久久| 欧美一区二区视频在线观看2020| 一二三区精品福利视频| 在线精品视频一区二区| 精品国精品国产| 捆绑调教美女网站视频一区| 精品99久久久久久| 成人午夜私人影院| 亚洲第一主播视频| 欧美成人性战久久| a级高清视频欧美日韩| 一区二区国产视频| 欧美不卡一区二区三区四区| 国产成都精品91一区二区三| 一区二区三区四区中文字幕| 69堂国产成人免费视频| 国产一区二区导航在线播放| 依依成人精品视频| 日韩精品一区二区三区在线| 成人免费视频视频在线观看免费| 一区二区三区美女| 久久综合九色综合久久久精品综合 | 日韩激情一区二区| 久久色.com| 欧美日韩高清一区二区不卡| 国产精品一区久久久久| 亚洲午夜精品网| 国产精品无码永久免费888| 欧美日韩在线精品一区二区三区激情 | 首页亚洲欧美制服丝腿| 国产三区在线成人av| 欧美亚洲国产bt| 国产成人午夜精品影院观看视频| 亚洲成va人在线观看| 中文字幕不卡一区| 91精品一区二区三区在线观看| 丁香天五香天堂综合| 理论电影国产精品| 亚洲地区一二三色| 一区精品在线播放| 国产日产欧美一区二区视频| 欧美人伦禁忌dvd放荡欲情| 成人av第一页| 国产乱码精品一区二区三区忘忧草 | 久久综合久久综合久久综合| 欧美无乱码久久久免费午夜一区| 懂色中文一区二区在线播放| 蜜桃av一区二区在线观看| 一区二区三区日韩| 国产精品天干天干在观线| 久久综合久色欧美综合狠狠| 欧美日韩激情一区二区三区| 色综合久久久久综合体桃花网| 成人av手机在线观看| 成人高清视频在线观看| 国产精品亚洲午夜一区二区三区| 日本美女视频一区二区| 亚洲超碰精品一区二区| 亚洲一区二区三区四区在线免费观看| 国产精品丝袜一区| 自拍av一区二区三区| 国产精品免费久久久久| 国产精品美女久久久久久久久| 国产三级精品在线| 国产人成亚洲第一网站在线播放| 欧美videossexotv100| 欧美成人综合网站| 久久综合资源网| 国产调教视频一区| 成人免费在线视频| 亚洲小说春色综合另类电影| 亚洲国产va精品久久久不卡综合| 亚洲一区在线视频观看| 亚洲国产视频在线| 奇米影视一区二区三区| 精品一区二区日韩| 成人黄色小视频在线观看| 91在线porny国产在线看| 91国内精品野花午夜精品| 日本精品视频一区二区三区| 欧美图区在线视频| 精品久久久久99| 国产精品伦理在线| 亚洲成人免费看| 国内精品视频666| 成人av在线网站| 欧美日韩mp4| 久久久久久毛片| 一区二区三区自拍| 美洲天堂一区二卡三卡四卡视频| 国内一区二区在线| 91麻豆文化传媒在线观看| 欧美高清精品3d| 久久精品男人的天堂| 一区二区日韩av| 国产在线麻豆精品观看| 99精品久久99久久久久| 欧美天堂一区二区三区| 久久精品视频一区二区三区| 亚洲乱码国产乱码精品精小说 | 久久久久久久久岛国免费| 成人免费一区二区三区在线观看| 天天综合日日夜夜精品| 不卡视频在线观看| 欧美一区二区三区白人| 亚洲人成亚洲人成在线观看图片| 精品亚洲国内自在自线福利|