www.pudn.com > sci.rar > SCI_TEST.c


 
#include "DSP28_Device.h" 
unsigned int Sci_VarRx[100]; 
unsigned int i,j; 
unsigned int Send_Flag; 
 
void main(void) 
{ 
 
	/*初始化系统*/ 
	InitSysCtrl(); 
 
	/*关中断*/ 
	DINT; 
	IER = 0x0000; 
	IFR = 0x0000; 
 
	/*初始化PIE中断*/ 
	InitPieCtrl(); 
 
	/*初始化PIE中断矢量表*/ 
	InitPieVectTable();	 
	 
	/*初始化SCIA寄存器*/ 
    InitSci(); 
    for(i = 0; i < 100; i++) 
    { 
    	Sci_VarRx[i] = 0; 
    } 
    i = 0; 
    j = 0; 
    Send_Flag = 0; 
     
    #if SCIA_INT 
	/*设置中断服务程序入口地址*/ 
	EALLOW;	// This is needed to write to EALLOW protected registers 
	PieVectTable.TXAINT = &SCITXINTA_ISR; 
	PieVectTable.RXAINT = &SCIRXINTA_ISR; 
	EDIS;   // This is needed to disable write to EALLOW protected registers 
 
	/*开中断*/ 
	IER |= M_INT9; 
	#endif 
	EINT;   // Enable Global interrupt INTM 
	ERTM;	// Enable Global realtime interrupt DBGM 
 
	for(;;) 
	{ 
		if((SciaTx_Ready() == 1) && (Send_Flag == 1)) 
		{ 
			SciaRegs.SCITXBUF = Sci_VarRx[i]; 
			Send_Flag = 0; 
			i++; 
			if(i == j) 
			{ 
				i = 0; 
				j = 0; 
			} 
		} 
		 
		 
		#if !SCIA_INT 
		if(SciaRx_Ready() == 1) 
		{ 
			Sci_VarRx[j] = SciaRegs.SCIRXBUF.all; 
			Send_Flag = 1; 
			j++; 
			if(j == 100) 
			{ 
				j = 0; 
			} 
		} 
		#endif 
	} 
 
} 	 
 
 
//=========================================================================== 
// No more. 
//===========================================================================