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

📄 ip.c

📁 用AVR单片机和RTL8019实现TCP/IP协议.支持ARP,PING,UDP,TCP,HTML网页显示等功能.
💻 C
字号:
//**********************************
//*版本: Test 1.0
//*作者: XUGUOHONG
//*E-MAIL: KK20Y@YAHOO.COM.CN
//*WEBSITE:microdesign.000webhost.com
//**********************************

#include <rtl8019as.h>
#include <ip.h>
//**********************************
//*  系统 MAC地址设定(根据需要修正)
//**********************************
extern unsigned char SYSMAC[6];
//**********************************
//*  系统 IP地址设定(根据需要修正)
//**********************************
extern unsigned char SYSIP[4];

void ip(void);
unsigned int ip_cal_csum(void);

//************************************
//      IP数据包分析
// 根据类型数值,执行不同的操作
// 1.icmp
// 2.tcp
// 3.udp
//************************************
void ip(void)
{
 unsigned char temp;
 temp=read_62256(IP_PRO_TYP);      //读取IP数据包类型
 if ( temp==0x01 )
 {
     icmp();
 }
 else if ( temp==0x06)
 {
     tcp();
 }
 else if ( temp==0x11)
 {
     udp();
 }
 else ;
}


//************************************
//      IP数据包头CHECKSUM
//************************************
unsigned int ip_cal_csum(void)
{
 unsigned char i;
 unsigned long datah=0x00000000;
 unsigned int data=0x0000;
 for(i=0;i<20;i=i+2)
 {
  data=read_62256(IP_VER_LEN+i);               // 高位数值xxxxabcd
  datah= datah+(data<<8);                      // 形成数值xxxxabcdxxxx
  datah=datah+read_62256(IP_VER_LEN+1+i);      // 形成数值xxxxabcdefgh
 }
  data=datah+(datah>>16);
  
  data=0XFFFF-data;
  return data;
}

⌨️ 快捷键说明

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