?? sci_com.h
字號:
/***************************************************************************
FUNCTION: static void Execute_Command_SCI0(const char *cmd)
PURPOSE: 串口0對接收到的字符串,執(zhí)行命令
****************************************************************************/
static void Execute_Command_SCI0(const char *cmd)
{
}
//串口0中斷
interrupt void SCI0_ISR(void)
{
static char command[20]; /* enough to hold "stop" or a single digit number */
static unsigned char i=0; /* index into command */
unsigned char rc;
ulong error_count = 0;
rc = SCI0SR1; /* dummy read to clear flags */
rc = SCI0DRL; /* data read */
if (i >= sizeof(command)-1 || rc == '!')
{
command[i] = '\0';
i = 0;
Execute_Command_SCI0(command);
}
else
{
command[i] = rc;
i++;
}
// SCI0DRL = rc;
}
//串口1中斷
interrupt void SCI1_ISR(void)
{
uchar rc = 0;
rc = SCI1SR1; /* dummy read to clear flags */
rc = SCI1DRL; /* data read */
}
static void Write_To_SCI0(const char *text)//輸出字符串
{
ulong error_count = 0;
while (*text != '\0')
{
SCI0DRL = *text++;
while (!(SCI0SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
}
SCI0DRL = '\0';
while (!(SCI0SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
}
void Write_To_SCI0_DATA(uint data)//把數(shù)字轉化為數(shù)字字符
{
ulong error_count = 0;
char i,temp = 0;
for(i=12;i>=0;i = i-4)
{
temp = (data>>i)&0x000F;
SCI0DRL = (temp<10 ? temp+48 : temp+55);
while (!(SCI0SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
}
}
void Write_To_SCI0_DATA_ASCII(uint data)//發(fā)送數(shù)字?。?!先發(fā)送高8位
{
ulong error_count = 0;
SCI0DRL = data>>8;
while (!(SCI0SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
SCI0DRL = data;
while (!(SCI0SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
}
static void Write_To_SCI1(const char *text)//輸出字符串
{
ulong error_count = 0;
while (*text != '\0')
{
SCI1DRL = *text++;
while (!(SCI1SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
}
SCI1DRL = '\0';
while (!(SCI1SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
}
void Write_To_SCI1_DATA(uint data)//把數(shù)字轉化為數(shù)字字符
{
ulong error_count = 0;
char i,temp = 0;
for(i=12;i>=0;i = i-4)
{
temp = (data>>i)&0x000F;
SCI1DRL = (temp<10 ? temp+48 : temp+55);
while (!(SCI1SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
}
}
void Write_To_SCI1_DATA_ASCII(uint data)//發(fā)送數(shù)字!??!先發(fā)送高8位
{
ulong error_count = 0;
/* SCI1DRL = data>>8;
while (!(SCI1SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;*/
SCI1DRL = data;
while (!(SCI1SR1 & 0x80)) // wait for output buffer empty
{
error_count++;
if(error_count >= TIME_OUT)//操作超時
break;
}
error_count = 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -