www.pudn.com > TCPIP.rar > main.c


#include	"cpu_reg.h" 
#include	"string.h" 
#include	"ip.h" 
 
Uint16  FrameLenth; 
Uint16  RxSuccessFlag; 
int		ms,ms1; 
//------------------- 
Uint16	TxEthnetFrameBuffer[1518/2]; 
Uint16	RxEthnetFrameBuffer[1518/2]; 
//------------------- 
extern	struct	ipaddr	server_ipaddr; 
Uint16	Temp; 
extern	Uint16	TCPTimeout; 
void	main() 
		{ 
//			Uint16	Temp; 
		    asm("  STM #0000h,CLKMD ");   
     		while(*CLKMD & 0x01 ); 
     		asm("  STM #30C7h,CLKMD ");  //设置CPU运行频率=100M 
/*  40C7h:5*clkin  =100M 
    30c7h:4*clkin  =80M 
    20c7h:3*clkin  =60M 
    10C7h:2*clkin  =40M 
*/ 
			*SWCR = 0x0001; 
		    asm("  stm   #7240h, SWWSR "); 
     //2 wait except for on-chip program 1 
     		asm("  stm   #00A0h, PMST  "); //MP/MC = 0, IPTR = 001,ovly=1   
     		asm("  stm   #0802h, BSCR  ");  
     		asm("  STM 	 #0h,	 IMR   "); 
      
     		asm("  STM #0010h,TCR  "); //关定时器 
     		asm("  STM #0186ah,PRD  ");//1ms 
     		asm("  STM #0C2fh,TCR  "); //TCR=最后四位 
     		asm("  STM #0008h,IFR  "); 
     		asm("  ORM #0009h,*(IMR) ");/*开时间中断*/ 
  
     		asm("  RSBX  INTM ");      /*开中断*/  
     		Init8019(); 
	  		TCP_Init(); 
     		 
			ms = 0; 
			ms1 = 0; 
			TCPTimeout = 0; 
			while(ms<2000); 
			 
//			ArpRequest();				 
			while(1) 
			{ 
            	if(TCPTimeout) 
                   Process_TCP_Timeout(); 
             	RTL8019ActiveOpen(); 
		       	Temp=RecFrame(); 
 				if (Temp) 
			       DoNetworkStuff(); 
			}		 
	} 
 
interrupt void  timer0() 
{ 
     ms++; 
     ms1++; 
     if (ms1>2000) 
     	{ 
     		TCPTimeout = 1; 
     		ms1 =0; 
     	}	    	 
}