RD_MacroAndConst.h
--------------------------------------------------------------------------------------
#ifndef _USE_MACRO_AND_CONST_H_
#define _USE_MACRO_AND_CONST_H_
/***********************************************************
* 声明库说明:系统常用宏定义声明库 *
* 版本: v0.11 *
* 作者: 傻孩子 *
* 创建日期: 2006年5月4日 *
* -------------------------------------------------------- *
* [支 持 库] *
* 支持库名称: *
* 需要版本: *
* 支持库说明: *
* -------------------------------------------------------- *
* [版本更新] *
* 修改: 王卓然 *
* 修改日期: 2007年1月31日 *
* 版本: v0.05 *
* *
* 修改: 王卓然 *
* 修改日期: 2007年2月20日 *
* 版本: v0.06 *
* *
* 修改: 王卓然 *
* 修改日期: 2007年2月27日 *
* 版本: v0.07 *
* *
* 修改: 王卓然 *
* 修改日期: 2007年5月14日 *
* 版本: v0.09 *
* *
* 修改: 王卓然 *
* 修改日期: 2007年8月15日 *
* 版本: v0.11 *
* -------------------------------------------------------- *
* [版本历史] *
* v0.04 修改了NULL的定义,增加了MAX()和MIN两个宏; *
* 修改了关于char的符号定义。 *
* v0.05 针对新规范进行了宏的扩充,删除了一些无效的 *
* 非规范的宏定义和类型声明。 *
* v0.06 增加了对新的位操作方式的支持。 *
* v0.07 增加了一个SAFE_CODE_PERFORMANCE()宏,用来保 *
* 正原子操作的正确运行。 *
* v0.09 增加了一个强制类型转换宏TYPE_CONVERSION(), *
* 和一个绝对值宏ABS() *
* v0.11 增加了一个用于从任意整数中提取16进制数字的 *
* 宏SELECT_HEX()。和一个将任意整数进行等效的 *
* 正数求模。也就是说,即便是负数,也会映射到 *
* 等效的正数上。 *
* -------------------------------------------------------- *
* [使用说明] *
* 1、该库文件属于基础库文件。 *
***********************************************************/
/********************
* 系 统 宏 定 义 *
********************/
#ifndef _USE_NON_ICC_IDE
# include
#endif
/*------------------*
* 常 数 宏 定 义 *
*------------------*/
#ifndef TRUE
# define TRUE 0x01
#endif
#ifndef FALSE
# define FALSE 0x00
#endif
#ifndef HIGH
# define HIGH 0x01
#endif
#ifndef LOW
# define LOW 0x00
#endif
#ifndef PI
# define PI 3.1415926535897932f
#endif
# define K_D2R (PI/180.0)
# define K_R2D (180.0/PI)
/*------------------*
* 动 作 宏 定 义 *
*------------------*/
# define SIN(x) sin((float)x * K_D2R)
# define COS(x) cos((float)x * K_D2R)
# define TAN(x) tan((float)x * K_D2R)
# define ATAN(x) (K_R2D*atan(x))
# define ASIN(x) (K_R2D*asin(x))
# define ACOS(x) (K_R2D*acos(x))
#ifndef NULL
# define NULL 0
#endif
# define SET(Reg,n) Reg |= BIT(n);
# define CLR(Reg,n) Reg &= ~BIT(n);
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#define UBOUND(a) (sizeof(a)/sizeof(a[0]))
# define SAFE_CODE_PERFORMANCE(Code) CLI();Code;SEI();
# define TYPE_CONVERSION(Addr,Type) (*((Type *)(Addr)))
# define ABS(Number) (((Number) < 0)?(-(Number))Number))
# define SELECT_HEX(Value,n,Type) ((Value << (n) * 4) >> ((sizeof(Type) * 8) - 4))
# define ABS_MOD(x,y) (((x) < 0) ? ((((x) % (y)) + (y)) % (y))(x) % (y)))
/********************
* 用户变量类型定义 *
********************/
typedef unsigned int uint16;
typedef unsigned int UINT;
typedef unsigned int uint;
typedef unsigned int UINT16;
typedef unsigned int WORD;
typedef unsigned int word;
typedef int int16;
typedef int INT16;
typedef unsigned long uint32;
typedef unsigned long UINT32;
typedef unsigned long DWORD;
typedef unsigned long dword;
typedef long int32;
typedef long INT32;
typedef signed char int8;
typedef signed char INT8;
typedef unsigned char byte;
typedef unsigned char BYTE;
typedef unsigned char UINT8;
typedef unsigned char uint8;
typedef unsigned char BOOL;
#endif
文章评论(0条评论)
登录后参与讨论