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

📄 datatype.h

📁 手把手教你单片机
💻 H
字号:
/******************************************************************************
** 文件名:DataType.h
** 描  述:按照MISRA-C:2004规则6.3 显式标识各数据类型,及通用枚举、结构类型
** 版本号:1.1.3      生成日期:2007.6.18
** http://www.kingst.org
** 小宋  QQ:415942827
** 备  注:要求目标系统的char数据类型长度必须为8bit
******************************************************************************/

#ifndef _DataType
#define _DataType


/* 符合MISRA-C:2004规则6.3的数据类型定义 */
typedef   signed     char        int8;   //有符号 8bit整型数
typedef   signed     int         int16;  //有符号16bit整型数
typedef   signed     long        int32;  //有符号32bit整型数
typedef   unsigned   char        uint8;  //无符号 8bit整型数
typedef   unsigned   int         uint16; //无符号16bit整型数
typedef   unsigned   long        uint32; //无符号32bit整型数
typedef   unsigned   char        CPU_SR; //CPU特殊功能寄存器数据类型


/* 通用枚举类型定义 */
enum  _bool {false, true};  //布尔枚举类型
typedef   enum _bool   bool;

enum _off_on {OFF, ON};  //开关枚举类型
typedef   enum  _off_on  off_on;


/* 通用结构类型定义 */
struct  _ifd16   //小数点为十进制的16bit有符号整型数
{
    int16  val;
    uint8  dot;
};
typedef   struct _ifd16    ifd16;

struct  _Uifd16  //小数点为十进制的16bit无符号整型数
{
    uint16 val;
    uint8  dot;
};
typedef   struct _Uifd16   Uifd16;

struct  _ifd32   //小数点为十进制的32bit有符号整型数
{
    int32  val;
    uint8  dot;
};
typedef   struct _ifd32    ifd32;

struct  _Uifd32  //小数点为十进制的32bit无符号整型数
{
    uint32 val;
    uint8  dot;
};
typedef   struct _Uifd32   Uifd32;

struct  _ifb16   //小数点为二进制Q值的16bit有符号整型数
{
    int16  val;
    uint8  Q;
};
typedef   struct _ifb16    ifb16;

struct  _Uifb16  //小数点为二进制Q值的16bit无符号整型数
{
    uint16 val;
    uint8  Q;
};
typedef   struct _Uifb16   Uifb16;

struct  _ifb32   //小数点为二进制Q值的32bit有符号整型数
{
    int32  val;
    uint8  Q;
};
typedef   struct _ifb32    ifb32;

struct  _Uifb32  //小数点为二进制Q值的32bit无符号整型数
{
    uint32 val;
    uint8  Q;
};
typedef   struct _Uifb32   Uifb32;


#endif

/**************************************************************************************************
** 修订记录:
** 版本:1.0.1    日期:2007.2.13   内容:按条件编译标识的统一命名格式修改预处理标识符
** 版本:1.0.2    日期:2007.2.28   内容:修改bool枚举类型的定义方式,以使在源代码中定义bool类型变
                                          量时不再需要enum关键字,使其等同于通用数据类型的定义方式
** 版本:1.1.0    日期:2007.3.1    内容:添加包含浮点信息的结构类型:icf16、Uicf16、icf32、Uicf32
** 版本:1.1.1    日期:2007.3.5    内容:将枚举和结构类型的定义方式由#define改为typedef
** 版本:1.1.2    日期:2007.3.29   内容:icf类型改为ifd,并明确标识小数点格式为十进制格式
                                          添加ifb类型,小数点采用二进制Q值格式表示
** 版本:1.1.3    日期:2007.6.18   内容:添加一个开关枚举类型off_on
**************************************************************************************************/

⌨️ 快捷键说明

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