?? rs232.c
字號:
/*---------- RS232 -----------*/
#include "DSP28_Device.h"
#ifdef RS232
/*與主機通信方式的變量定義*/
#if !SelfTest
unsigned int Sci_VarRx[100];
unsigned int i,j;
unsigned int Send_Flag;
#endif
/*自測試方式的變量定義*/
#if SelfTest
unsigned int Sci_VarT[10] = {0,1,2,3,4,5,6,7,8,9};
unsigned int Sci_VarR[10];
unsigned int Send_Flag;
unsigned int i,j;
#endif
void main(void)
{
/*初始化系統*/
InitSysCtrl();
/*關中斷*/
DINT;
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE中斷*/
InitPieCtrl();
/*初始化PIE中斷矢量表*/
InitPieVectTable();
/*初始化SCIA寄存器*/
InitSci();
/*與主機通信方式變量初始化*/
#if !SelfTest
for(i = 0; i < 100; i++)
{
Sci_VarRx[i] = 0;
}
i = 0;
j = 0;
Send_Flag = 0;
#endif
/*自測試方式變量初始化*/
#if SelfTest
for(i = 0; i < 10; i++)
{
Sci_VarR[i] = 0;
}
i = 0;
j = 0;
Send_Flag = 1;
#endif
//開中斷
EINT;
ERTM;
for(;;)
{
/*與主機通信方式*/
#if !SelfTest
if((SciaRegs.SCICTL2.bit.TXRDY == 1) && (Send_Flag == 1))
{
SciaRegs.SCITXBUF = Sci_VarRx[i];
Send_Flag = 0;
i++;
if(i == j)
{
i = 0;
j = 0;
}
}
if(SciaRegs.SCIRXST.bit.RXRDY == 1)
{
Sci_VarRx[j] = SciaRegs.SCIRXBUF.all;
Send_Flag = 1;
j++;
if(j == 100)
{
j = 0;
}
}
#endif
/*自測試方式*/
#if SelfTest
if((SciaRegs.SCICTL2.bit.TXRDY == 1)&&(Send_Flag == 1))
{
SciaRegs.SCITXBUF = Sci_VarT[i];
Send_Flag = 0;
i++;
if(i == 10)
i = 0;
}
if(SciaRegs.SCIRXST.bit.RXRDY == 1)
{
Sci_VarR[j] = SciaRegs.SCIRXBUF.all;
Send_Flag = 1;
j++;
if(i == 10)
j = 0;
}
#endif
}
}
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -