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

📄 testip.c

📁 2812 TCP/IP协议的实现
💻 C
字号:
#include	"DSP28_Device.h"
Uint16  FrameLenth;
Uint16	SendCounter=0;
Uint16	RecCounter=0;
Uint16	i;
Uint16	IsAns=1;
Uint16	regTmp;
Uint16	TxEthnetFrameBuffer[1518/2];
Uint16	RxEthnetFrameBuffer[100/2];

interrupt void RecData(void);
void	main(void)
{
	    //RxSuccessFlag=0;
		/*初始化系统*/
		InitSysCtrl();
		/*关中断*/
		DINT;
		IER = 0x0000;
		IFR = 0x0000;
		/*初始化PIE*/
		InitPieCtrl();
		/*初始化PIE矢量表*/
		InitPieVectTable();	
		InitPeripherals();
		InitGpio();
		InitXIntrupt();
		EALLOW;
		PieVectTable.XINT2=&RecData;
		EDIS;
     	PieCtrl.PIEIER1.bit.INTx5=1;
		IER|=M_INT1;
	    RST8019();
   		Init8019();
	
		EINT;   // Enable Global interrupt INTM
		ERTM;	// Enable Global realtime interrupt DBGM
////////////////////////////////
	Delay_MS(1000);
	//ArpRequest();
	//Delay_MS(1000);
		for(i=0;i<512;i++)//发送1M字节停止
		{
     			*(TxEthnetFrameBuffer+UDP_USER_START+i)=i;
		}
   		for(;;)
		{
			Prepare_UDP_Frame(Remote_UDP_PORT,512);
			if(SendCounter==1024)
	    	break;
   		}
   		for (; ; );
}

interrupt void RecData(void)
{
	Uint16 Temp;
	PieCtrl.PIEACK.all = 0xFFFF;//禁止其他中断
	PieCtrl.PIEIFR1.bit.INTx5 = 0;//清除中断标志位
	page(0);
	regTmp=Reg07;
	Reg07=0xff;
	if(regTmp&0x01==1)
	{
		RecCounter++;
		Temp=RecFrame();
		if (Temp==1)
		{
			DoNetworkStuff();
		}
		if (IsAns==1)
		{
			Prepare_UDP_Frame(Remote_UDP_PORT,512);
			IsAns=0;
		}
	}
	if ((regTmp&0x02)==2)
	{
		SendCounter++;
	}
	ERTM;
}
//===============================end ======================
		

⌨️ 快捷键说明

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