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

📄 motor.c

📁 汽车上四车窗升降器:包括电路图与源程序
💻 C
字号:
#ifndef _M_C_
#define _M_C_

#include "global.h"

void fDiagMOvd(void)
{
	if(bDigEn)
	{
		if(bDigDrWinEn)	fDiagDrWin();
		if(bDigFPWinEn)	fDiagFPWin();
		if(bDigRRWinEn)	fDiagRRWin();
		if(bDigRLWinEn)	fDiagRLWin();
	}
}
	

	
void fDiagDrWin(void)
{		unsigned char order;
		unsigned int temp;

		fItlADC();
		temp = fADConverter(AD_DrM);
		ptrDr++;
		order =ptrDr & 0x07;
		vSumOfDrMCur = vSumOfDrMCur + temp - vDrMCur[order];
		vDrMCur[order] = temp;
		temp = vSumOfDrMCur >>3; 	
		if(temp > mOvd)
		{
			bDrWinOvd = 1;
			bDrMED = 1;
		}
}

	
void fDiagFPWin(void)
{		unsigned char order;
		unsigned int temp;

		fItlADC();
		temp = fADConverter(AD_FPM);
		ptrFP++;
		order =ptrFP & 0x07;
		vSumOfFPMCur = vSumOfFPMCur + temp - vFPMCur[order];
		vFPMCur[order] = temp;
		temp = vSumOfFPMCur >>3; 	
		if(temp > mOvd)
		{		
				bFPWinOvd = 1;
				bFPMED = 1;
		}
}


void fDiagRRWin(void)
{		unsigned char order;
		unsigned int temp;

		fItlADC();
		temp = fADConverter(AD_RRM);
		ptrRR++;
		order =ptrRR & 0x07;
		vSumOfRRMCur = vSumOfRRMCur + temp - vRRMCur[order];
		vRRMCur[order] = temp;
		temp = vSumOfRRMCur >>3; 	
		if(temp > mOvd)
		{	
			bRRWinOvd = 1;
			bRRMED = 1;
		}
}	

void fDiagRLWin(void)
{		unsigned char order;
		unsigned int temp;

		fItlADC();
		temp = fADConverter(AD_RLM);
		ptrRL++;
		order =ptrRL & 0x07;
		vSumOfRLMCur = vSumOfRLMCur + temp - vRLMCur[order];
		vRLMCur[order] = temp;
		temp = vSumOfRLMCur >>3; 	
		if(temp > mOvd)
		{
			bRLWinOvd = 1;
			bRLMED = 1;
		}
}



void fDealWithDiag(void)
{	
	if(bDealEn)
	{
		if(bDrWinOvd)	
		{	fDrMStop();
//			bEnDrLRTC = 1;
			bDigDrWinEn = 0;
			bDrMAutoUp = 0;
			bDrMAutoDown = 0;
		}	


		if(bFPWinOvd)	
		{	fFPPMStop();
//			bEnFPLRTC = 1;
			bDigFPWinEn = 0;
			bFPMAutoDown = 0;
			bDrCtrFPMAutoDown = 0;
		}	


		if(bRRWinOvd)	
		{	fRRPMStop();
//			bEnRRLRTC = 1;
 			bDigRRWinEn = 0;
			bRRMAutoDown = 0;
			bDrCtrRRMAutoDown = 0;
		}	


		if(bRLWinOvd)	
		{	fRLPMStop();
//			bEnRLLRTC = 1;
			bDigRLWinEn = 0;
			bRLMAutoDown = 0;
			bDrCtrRLMAutoDown = 0;
		}	
	}
}






void fClrDrMCur(void)
{		
		unsigned char i;
		for(i = 0; i<8 ;i++)
		vDrMCur[i] = 0;
		vSumOfDrMCur = 0;
}

void fClrFPMCur(void)
{		
		unsigned char i;
		for(i = 0; i<8 ;i++)
		vFPMCur[i] = 0;
		vSumOfFPMCur = 0;
}

void fClrRRMCur(void)
{		
		unsigned char i;
		for(i = 0; i<8 ;i++)
		vRRMCur[i] = 0;
		vSumOfRRMCur = 0;
}


void fClrRLMCur(void)
{		
		unsigned char i;
		for(i = 0; i<8 ;i++)
		vRLMCur[i] = 0;
		vSumOfRLMCur = 0;
}




//Dr P M
void fDrMStop(void)
{
//	if(!bDrMStop )
	{	Relay1 = 0; 
		Relay0 = 0;
		bDrMStop = 1;
		bDrWinOvd = 0;
		fClrDrMCur();


 		vDrMDownTC = 0;
		vDrMUpTC	= 0;
	}
}

void fDrMRise(void)
{	
	Relay0 = 1; 
	Relay1 = 0;
	bDrMDR = 1;
}

void fDrMFall(void)
{
	Relay0 = 0; 
	Relay1 = 1;
 	bDrMDR = 0;
}
//FP P M
void fFPPMStop(void)
{
	if(!bFPMStop )
	{	Relay2 = 0; 
		Relay3 = 0;
		bFPMStop = 1;
		bFPWinOvd = 0;
		fClrFPMCur();


		vFPMDownTC = 0;
		vFPMUpTC	= 0;
	}
}

void fFPPMRise(void)
{	
	Relay2 = 1; 
	Relay3 = 0;
	bFPMDR = 1;
}

void fFPPMFall(void)
{
	Relay2 = 0; 
	Relay3 = 1;
 	bFPMDR = 0;
}
//R R P M
void fRRPMStop(void)
{
	if(!bRRMStop )
	{	Relay4 = 0; 
		Relay5 = 0;
		bRRMStop = 1;
		bRRWinOvd = 0;
		fClrRRMCur();


		vRRMDownTC = 0;
		vRRMUpTC	= 0;
	}
}

void fRRPMRise(void)
{	
	Relay4 = 1; 
	Relay5 = 0;
	bRRMDR = 1;
}

void fRRPMFall(void)
{
	Relay4 = 0; 
	Relay5 = 1;
 	bRRMDR = 0;
}

//RL P M
void fRLPMStop(void)
{
	if(!bRLMStop )
	{	Relay6 = 0; 
		Relay7 = 0;
		bRLMStop = 1;
		bRLWinOvd = 0;
		fClrRLMCur();


		vRLMDownTC = 0;
		vRLMUpTC	= 0;
	}
}

void fRLPMRise(void)
{	
	Relay6 = 1; 
	Relay7 = 0;
	bRLMDR = 1;
}

void fRLPMFall(void)
{
	Relay6 = 0; 
	Relay7 = 1;
	bRLMDR = 0;
}































#endif

⌨️ 快捷键说明

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