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

📄 define.h

📁 AVR单片机基础上的以太网协议编程
💻 H
字号:
/**************************************************************************
**
**    文件: Define.h
**    描述: 该文件完成一些常量的宏定义和数据类型的定义
**
*************************************************************************/

#ifndef Define_h
#define Define_h

//定义晶振频率为8000KHZ
#define XTAL 8000

//定义定时器1的分时复用标志
#define T1_Interval  1  //用于发送设备声明报文的间隔计时
#define T1_Period    2  //用于本地周期报文发送时刻计时
#define T1_NonPeriod 3  //用于非周期报文发送阶段到来计时

//定义网络中包的长度上下限
#define Max_Size 200    //EPA网络中,包的可能最大长度,本来包的最大长度为1200
#define Min_Size 60     //以太网中,包的最小长度

//定义域下载数据的最大可能长度,(2+70)*2
#define DomainDownload_Max_Size 144

//定义信息分发数据的长度
#define Dis_DataLen 70

//定义设备本身的信息,用户组态程序对这些参数只能读、不能写
#define My_DeviceID_Len    24    //本地设备ID的长度
#define Device_Type_ID     'T'   //设备类型号
#define Device_Version_ID  114   //设备版本号

//定义组态信息,通过域下载服务发给下位机
#define Response_Time      400   //证实服务最大响应时间30ms
#define Macro_Cycle        200   //通信宏周期200ms
#define NonPeriodic_Offset 100   //周期报文发送总时间100ms
#define Sendtime_Offset    50    //本地周期报文发送时刻50ms

//定义重发上限
#define Max_Resend 3

//定义数据类型
#define TRUE 1
#define FALSE 0
#define uchar  unsigned char
#define uint   unsigned int
#define ulong  unsigned long
typedef struct            //二进制日期
{
    uint  year;           //如2004就表示2004年 
    uchar month;          //取值范围是1~12 
    uchar day;            //取值范围是1~31 
    uchar hour;           //取值范围是0~23 
    uchar minute;         //取值范围是0~59 
    uint  millisecond;    //取值范围是0~59999 
}BinaryDate;
typedef struct            //时间差
{
    uint  Date;           //日期差
    ulong Millisecond;    //以毫秒形式表示一天的小数部分
}TimeDifference;
typedef struct            //错误类型
{
    uchar Error_Class;    //差错类型,该参数标识 
    uchar Error_Code;     //差错编码,该参数给出了一个更加具体的错误描述
    uchar Additional_Code;//附加编码,该参数是可选的,用户可以自己定义它的用途
    uchar Reserved;
    uchar Additional_Description[32];//附加描述,可选,用来在错误信息中增加一个文本描述
}ErrorType;

//整形或长整形数据的主机字节顺序与网络字节顺序之间的变换
#define  byte_swap2(val)  ((((val) & 0xff) << 8) | (((val) & 0xff00) >> 8))
#define  byte_swap4(val)  ((((val) & 0xff) << 24) | (((val) & 0xff00) << 8) | (((val) & 0xff0000) >> 8) | (((val) & 0xff000000) >> 24))
//Convert int or long value from host to network byte order
#define  htons(x)  byte_swap2(x)
#define  htonl(x)  byte_swap4(x)
//Convert short or long value from network to host byte order
#define  ntohs(x)  byte_swap2(x)
#define  ntohl(x)  byte_swap4(x)

#endif

/******************* End Of File **********************/

⌨️ 快捷键说明

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