📄 typedef.h
字号:
/******************************************************************************************
;;文件名称: TypeDef.h
;;文件概述: 本文件主要是对常量和结构类型进行定义
;;作 者: 耿艳军
;;生效日期: 2008年3月06日
;;版 本 号: V0.1
;;变更记录:
******************************************************************************************/
#ifndef TYPEDEF_H //防止重复定义
#define TYPEDEF_H
/***************************************************/
/***************************************************/
//程序版本号定义
//主版本号(0~99)
#define MAINVER 0
//从版本号(0~99)
#define SLAVEVER 1
/**********************************************************/
#define DEBUG 0 //为0时关闭调试
/**********************************************************/
#define HARD_SPI 0 //0关闭硬件SPI,1开启硬件SPI功能
/**********************************************************/
#define ADDRESS 0x04 //刹车控制器地址
#define MADDRESS 0x05 //刹车控制器地址
/***************************************************/
#define DIA 95 //59定义汽车轮胎直径单位CM
//95
#define GIRTH ((DIA*314)/100) //周长计算cm
/***************************************************/
#define STARTSTOPTIME (4*(10))//快速报警后延时刹车延时值,数值(1-255 )单位100MS
/***************************************************/
#define SELF_TEST_CVERTIME 50; //等待自检命令超时 基础单位是0.5秒,超时时间=SELF_TEST_CVERTIME*0.5(S)
#define CVERTIME 50; //电机操作超时定时器,基础单位是0.5秒,超时时间=CVERTIME*0.5(S)
/***************************************************/
//数据类型简写定义
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
/***************************************************/
#define ZERO 0
#define ONE 1
#define TWO 2
#define THREE 3
#define FOUR 4
#define FIVE 5
#define SIX 6
#define SEVEN 7
#define EIGHT 8
#define NINE 9
#define TEN 10
/***************************************************/
//数据存储类型定义
#define APPOINT_TYPE //指定数据存储类型
#ifdef APPOINT_TYPE
#define DATA data
#define XDATA xdata
#define IDATA idata
#define PDATA pdata
#define CODE code
#define BDATA bdata
#define BIT bit
#else
#define DATA
#define XDATA
#define IDATA
#define PDATA
#define CODE
#define BDATA
#define BIT
#endif
#define FAST 1
#define SLOW 0
#define DISP_COL_NO 16
#define NULL 0 //字符串结束标记
/**********************************************************/
/* 定义命令 */
#define ISP_IAP_BYTE_READ 0x01 /* 字节读数据*/
#define ISP_IAP_BYTE_PROGRAM 0x02 /* 字节编程数据存储区 */
#define ISP_IAP_ERASE 0x03 /* 扇区擦除数据存储区 */
/*设置ISPIAP操作等待常数*/
//#define ENABLE_ISP 0x80 //系统时钟小于30M
//#define ENABLE_ISP 0x81 //系统时钟小于24M
//#define ENABLE_ISP 0x82 //系统时钟小于20M
#define ENABLE_ISP 0x83 //系统时钟小于12M
//#define ENABLE_ISP 0x84 //系统时钟小于6M
//#define ENABLE_ISP 0x85 //系统时钟小于3M
//#define ENABLE_ISP 0x86 //系统时钟小于2M
//#define ENABLE_ISP 0x87 //系统时钟小于1M
/*12c5410系列块地址定义*/
#define FIRST_BLOCK 0x2800 //第一块
#define SECOND_BLOCK 0x2A00 //第二块
#define THIRD_BLOCK 0x2C00 //第三块
#define FOUR_BLOCK 0x2E00 //第四块
/**********************************************************/
#define KEY_UP 1
#define KEY_DOWN 2
#define KEY_ESC 3
#define KEY_MENU 4
/**********************************************************/
#define EMPTY 0
#define READY 1
#define WORKING 2
#define WORKED 3
/**********************************************************/
#define CLIENT 1
#define FACTORY 2
/**********************************************************/
/**********************************************************/
#define NULL 0
#define FULL 0xff
#define UNREAD 1
#define READ 2
#define START 1
#define RUN 2
#define STOP 3
#define POSITIVE 0x01
#define NEGATIVE 0x10
#define STOPTIVE 0x00
#define FAILED (-1)
#define SUCCEED 0
#define P10WM 0//
#define P9WM 9
#define P8WM 8
#define P7WM 7
#define P6WM 6
#define P5WM 5
#define P4WM 4
#define P3WM 3
#define P2WM 2
#define P1WM 1
/**********************通信主从命令************************************/
#define MS_REST_STOP_CAR 0x10
#define MS_STOP_CAR50_SLOW 0x11
#define MS_STOP_CAR100_SLOW 0x12
#define MS_STOP_CAR50_FAST 0x13
#define MS_STOP_CAR100_FAST 0x14
#define MS_SELF_TEST 0x20
#define MS_SYS_SEELP 0x21
#define MS_ALLOW_IN_WORKING 0x22
#define MS_ALLOW_IN_UPDATE_STA 0X100
#define MS_UPDATA_DATAS 0x101
#define MS_VERIFY_DATAS 0x102
/**********************通信从主命令************************************/
#define SM_RECEV_OK 0x01
#define SM_REST_STOP_CAR 0x10
#define SM_STOP_CAR50_SLOW 0x11
#define SM_STOP_CAR100_SLOW 0x12
#define SM_STOP_CAR50_FAST 0x13
#define SM_STOP_CAR100_FAST 0x14
#define SM_SELF_TEST 0x20
#define SM_SYS_SEELP 0x21
#define SM_ALLOW_IN_WORKING 0x22
#define SM_ALLOW_IN_UPDATE_STA 0X100
#define SM_UPDATA_DATAS 0x101
#define SM_VERIFY_DATAS 0x102
/**************************通信子命令********************************/
#define UN_ACK 0x00//不应答
#define UN_ORDAIN_TIME_ACK 0x01//不在规定时间内应答
#define ORDAIN_TIME_ACK 0x02//在规定时间3秒内应答
#define IMMEDIATELY_ACK 0x03//立即应答
#define IMMEDIATELY_RESULT_ACK 0x04//立即和结果应答
/**********************************************************/
typedef struct
{
uchar Wather; //天气
uchar Rode; //路况
uchar Function; //功能
uchar TyreDia; //车轮直径
uchar Cxor;
}USER_PARA;
typedef struct
{
uchar ButeRate; //通信波特率
uchar TyreDia; //车轮直径
//功能
}SYSTEM_PARA;
/**********************************************************/
//1、简单消息封装结构体
typedef struct //刹车处理数据结构体
{
uchar sta; //进度0 STOP,1 START
uchar cmd; //命令
}STRUCT_STOP_CAR;
/**********************************************************/
/*消息结构体*/
typedef struct {
uchar sta;
uchar type;
uchar dat;
uchar dat2;
uchar Mschedule; //主进度
uchar Sschedule; //从进度
}MSG;
typedef struct {
uchar sta;
uchar ddata[5];
}MSG_COM;
/*邮箱结构体*/
typedef struct {
uchar sta; //y邮件状态 (NULL 空无邮件,UNREAD未读,READ已读)
uchar type; //邮件类型
uchar matter[5]; //邮件内容
}MAIL;
/*can通信帧结构体*/
typedef struct {
uchar farmeSta; //状态 (NULL 空,FULL满)
uchar farmeType; //帧命令类型
uchar farmeSubType; //帧子命令类型
uchar farmeLong; //帧长度
uchar farmeData[9]; //帧数据 8个数据和1个帧计数
}STRUCT_FARME;
/*主机返回车得信息结构体*/
typedef struct {
uchar goingsta; //行驶状态
uchar Sefspeed; //本车速度
uchar safedst; //安全车距离
uchar fwcardst; //前车距离
uchar fwspeed; //前车速度
}STRUCT_INFO;
//日期时间结构类型
typedef struct
{
uchar year; //年
uchar month; //月
uchar day; //日
uchar week; //星期
uchar hour; //时
uchar minute; //分
uchar second; //秒
} STRUCT_DATE_TIME;
//日期结构类型
typedef struct
{
uchar year; //年
uchar month; //月
uchar day; //日
} STRUCT_DATE;
//时间结构类型
typedef struct
{
uchar hour; //时
uchar minute; //分
uchar second; //秒
} STRUCT_TIME;
//时间结构类型
typedef struct
{
uchar RelodeValH; //重载值高位
uchar RelodeValL; //重载值低位
uchar CycleTimer; //周期控制定时值
uchar PluseWTimer; //占空比控制定时值
}FP_TIMR;//定时器输出频率占空比调整
/*
typedef struct
{
uchar IrS; //红外发送启动信号
uchar l; //发送数据的长度
uchar *p; //
}//
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -