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

📄 peri2407.c

📁 2407的例子代码
💻 C
字号:
#include "peri2407.h"
///////////////////////////////////////////////////////////////////////////////////////////
void DelaySingle(unsigned int nShortTime)
{//延时,<3276 us
	
}
void Delay(unsigned long nTime)
{//延时nTime us
	//count int us
	

}

void DelaySingleUSec(unsigned int nTime)
{
	//nTime=nTime*20;
	
}
void InitializeTimer()
{//初始化定时器
	
	
}
void InitQEP(unsigned int *nPrdCnt)
{
	 
}
int GetDirection(int nTimerIndex)
{
	
}
long GetQEPCount(int nTimerIndex,unsigned int*nPrdCnt)
{
	
}

///////////////////////////////////////////////////////////////////////////////////////
/*************************************uart********************************************/
void InitUart(long nBaud,int nDataBits,int bEnableParity,int bParityEven,int nStopBits,int bRecvIntEnable,int bSendIntEnable)
{
	//SCIPC2  removed
	//SCICTL1.CLKENA removed
	//SCICCR.SCIENA changed
	//SCSR1<6> should be 1
	
	unsigned int nData=0;
	double BRD;
	unsigned int nBRD=0;
	nData+=(((nDataBits)&0x000f)-1);
	if(bEnableParity)
	{
		nData|=BIT5;
		if(bParityEven)
		{
			nData|=BIT6;
		}
	}
	if(nStopBits==2)
	{
		nData|=BIT7;
	}
	//nData|=BIT4;
	BRD=40000000.0/(8.0*nBaud)-1.0;
	nBRD=40000000/(8*nBaud)-1;
	if(BRD-nBRD>=0.5)
	nBRD+=1;
	
	*MCRA|=0x0003;
	*SCICCR=nData;
	*SCICTL1=0x0003;
	*SCIHBAUD=nBRD/256;
	*SCILBAUD=nBRD%256;
	*SCICTL2=0;
	if(bRecvIntEnable)
	{
		*SCICTL2|=BIT1;
	}
	if(bSendIntEnable)
	{
		*SCICTL2|=BIT0;
	}
	//*SCIPC2=0x0022;
	*SCIPRI=0x0000;
	*SCICTL1=0x0023;
}
void SendData(int nData)
{
	while((*SCICTL2&0x00c0)!=0x00c0);
	*SCITXBUF=(nData&0x00ff);
}
int RecvData(int* nData)
{
	while(!(*SCIRXST&BIT6));
	if(*SCIRXST&BIT7)
	{
		*SCICTL1&=(~BIT5);
		*SCICTL1|=BIT5;
		return 0;
	}
	*nData=*SCIRXBUF;
	return 1;
}
void SendMsg( int* msg, int len )
{
	int i;
	asm(" clrc sxm");
	
	for( i=0; i<len; i++ ){
		 msg[i]&=0x00ff;
		
		if( (msg[i]>>4)<10 ){
			SendData( (msg[i]>>4)+'0' );
		}
		else {
			SendData((msg[i]>>4)-10+'A' );
		}
		if( (msg[i]&0x000f)<10 ){
			SendData( (msg[i]&0x000f)+'0' );
		}
		else {
			SendData((msg[i]&0x000f)-10+'A' );
		}
		
	}
	
	SendData( '\n' );
}
void SendWord(int wData)
{
  int cmdArray[2];
  asm(" clrc sxm");
  cmdArray[0]=(int)((wData&0xff00)>>8);
  cmdArray[1]=wData&0x00ff;
  SendMsg(cmdArray,2);
}
void SendDWord(unsigned long dwData)
{
  int cmdArray[4];
  cmdArray[0]=(int)((dwData&0xff000000)>>24);
  cmdArray[1]=(int)((dwData&0x00ff0000)>>16);
  cmdArray[2]=(int)((dwData&0x0000ff00)>>8);
  cmdArray[3]=(int)(dwData&0x000000ff);
  SendMsg(cmdArray,4);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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