📄 peri2407.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 + -