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

📄 qep.c

📁 DSP部分功能测试 串口
💻 C
字号:
//----------------------------------------//
//-----------QEP.c-----------------------//
//test QEP0&QEP1,:EVA-------------------//
//can count encode from 0 to 65535,减到0后从65535减计数,加至PRE后从0再加.//
//--------------------------------------//
#include    "f2407_c.h"

extern void QEPINIT();
extern void clearqep();
extern void AutoUp();
extern void SetQep(unsigned int uiangle);
extern char pc_fangbai;
extern unsigned long MaxerQep();
extern unsigned long Encode_counter;
extern unsigned int uiAutoUpPara1,uiAutoUpPara2,uiAutoUpPara3,uiAutoUpPara4;
unsigned long counter1;
extern unsigned long Maxest_counter,Maxer_counter;
char auto_qubai;
char autoUp_flag;
//---------------------------------------//
//----------int QEPINIT();---------------//
//--use LF2407A's EVA T2 to count encode-//                                     //
//---by GuoJinf @2007.05.17----V0.1------//
//---------------------------------------//
//---------------------------------------//

void QEPINIT()
{
	*T2PR = 0x0ffff;    //T2's T is 0Xffff
	*T2CON = 0x1870;     //T2 +/- source from Encode
	*T2CNT = 0x0;        //clr T2
	WSGR = 0x0000;
	*CAPCONA = 0x0E000;
}

//-------------------------------------------------------//
//---------void clearqep();------------------------------//
//-------------------------------------------------------//
void ClearQep()
{
	*T2PR = 0x0ffff;    //T2's T is 0Xffff
	*T2CON = 0x1870;     //T2 +/- source from Encode
	*T2CNT = 0x0;        //clr T2
	*CAPCONA = 0x0E000;
	Maxest_counter = 0;
}

//-------------------------------------------------------//
//---------void SetQep(uint);------------------------------//
//-------------------------------------------------------//
void SetQep(unsigned int uiangle)
{
	*T2CNT = ~uiangle + 1;        //clr T2
//	*CAPCONA = 0x0E000;
}
//-----------------------------------------------------------//
//--------unsigned long MaxerQep();--------------------------//
//--------
//-----------------------------------------------------------//
unsigned long MaxerQep()
{
	unsigned long maxest;
	maxest = Maxer_counter;
	if((Encode_counter & 0xffff) < 0x7fff)
	{
		if(*T2CNT > Maxer_counter )
			maxest = *T2CNT;
		autoUp_flag=1;
		pc_fangbai = 0x0;
	}
	Maxer_counter = maxest;
	return (maxest);
}

//-------------------------------------------------------------//
//-----void AutoUp();------------------------------------------//
//-------------------------------------------------------------//
void AutoUp()
{
	unsigned long counter2;
	counter2 = counter1;
	counter1 = Encode_counter;
	if((counter1 < counter2) && ((counter1 & 0x00ffff)>0x7fff))
	{
		if(counter1 > 0xff69)
		{
		}
		
		else if(counter1>0xfb1d && counter1 < 0xff69)
		{
			if(((counter2-counter1) < (uiAutoUpPara2 * 4)) && ((counter2-counter1)>uiAutoUpPara1))
			{
				auto_qubai = 0x1;
			}
		}
		else if(Encode_counter>0xf159)
		{
			if(((counter2-counter1)<(uiAutoUpPara3* 4)) && ((counter2-counter1)>uiAutoUpPara1))
			{
				auto_qubai = 0x1;
			}
		}
		else 
		{
			if(((counter2-counter1)<(uiAutoUpPara4* 4)) && ((counter2-counter1)>uiAutoUpPara1))
			{
				auto_qubai = 0x1;
			}
		}
	}
	

	


}

⌨️ 快捷键说明

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