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

📄 define.h

📁 使用于克隆器
💻 H
字号:
/******************************************************************************
 Copyright (c) 2003 MStar Semiconductor, Inc.
 All rights reserved.

 [Module Name]: Define.h
 [Date]:        03-Nov-2003
 [Comment]:
   Macro definition.
 [Reversion History]:
*******************************************************************************/

#ifndef _DEFINE_H_
#define _DEFINE_H_

//////////////////////////////////////////////
//////////////////////////////////////////////
#include <stddef.h>

//////////////////////////////////////////////
// General
//////////////////////////////////////////////
typedef bit BIT;
typedef unsigned char UCHAR;
typedef unsigned char BYTE;
typedef unsigned int UINT;
typedef unsigned int WORD;
typedef unsigned long ULONG;
typedef unsigned long DWORD;

typedef unsigned char* PUCHAR;
typedef BYTE* PBYTE;
typedef UINT* PUINT;
typedef WORD* PWORD;
typedef ULONG* PULONG;
typedef DWORD* PDWORD;
typedef void* PVOID;

// boolean
typedef enum _BOOL
{
    FALSE       = 0,
    TRUE
}BOOL;

// combination 2 bytes
typedef union _WordType
{
struct
{
BYTE _byte1;
BYTE _byte0;
}separate;

WORD total;
}WordType;

// combination 4 bytes
typedef union _DWordType
{
struct
{
BYTE _byte3;
BYTE _byte2;
BYTE _byte1;
BYTE _byte0;
}separate;

DWORD total;
}DWordType;

// flag byte
typedef struct _FlagByteType
{
BYTE bit0 : 1;
BYTE bit1 : 1;
BYTE bit2 : 1;
BYTE bit3 : 1;
BYTE bit4 : 1;
BYTE bit5 : 1;
BYTE bit6 : 1;
BYTE bit7 : 1;
}FlagByteType;

//////////////////////////////////////////////
// Keil C
//////////////////////////////////////////////
#define DATA              data
#define BDATA             bdata
#define IDATA             idata
#define PDATA             pdata
#define XDATA             xdata
#define RDATA             code

#define CBYTE             ((unsigned char volatile code  *) 0)
#define DBYTE             ((unsigned char volatile data  *) 0)
#define PBYTE             ((unsigned char volatile pdata *) 0)
#define XBYTE             ((unsigned char volatile xdata *) 0)
#define IBYTE             ((unsigned char volatile idata *) 0)

//////////////////////////////////////////////
// Macro
//////////////////////////////////////////////
#define HIBYTE_REF(addr)          (*((BYTE *) & (addr)))
#define LOBYTE_REF(addr)          (*((BYTE *) & (addr + 1)))
#define MAKEWORD(value1, value2)  (((WORD)(value1)) * 0x100) + (value2)
#define MAKEUINT(value1, value2)  (((WORD)(value1)) * 0x100) + (value2)
#define H2BYTE(value)             ((BYTE)((value) / 0x10000))
#define HIBYTE(value)             ((BYTE)((value) / 0x100))
#define LOBYTE(value)             ((BYTE)(value))

#define HINIBBLE(value)           ((value) / 0x10)
#define LONIBBLE(value)           ((value) & 0x0f)

#define max(a, b)                 (((a) > (b)) ? (a) : (b))
#define min(a ,b)                 (((a) < (b)) ? (a) : (b))

//////////////////////////////////////////////
// Others
//////////////////////////////////////////////
#define _ENABLE      1
#define _DISABLE     0

// pin
#define _HIGH    1
#define _LOW     0

// bit
#define _BIT0   0x0001
#define _BIT1   0x0002
#define _BIT2   0x0004
#define _BIT3   0x0008
#define _BIT4   0x0010
#define _BIT5   0x0020
#define _BIT6   0x0040
#define _BIT7   0x0080
#define _BIT8   0x0100
#define _BIT9   0x0200
#define _BIT10  0x0400
#define _BIT11  0x0800
#define _BIT12  0x1000
#define _BIT13  0x2000
#define _BIT14  0x4000
#define _BIT15  0x8000

#define _bit0_(val)  ((bit)(val & _BIT0))
#define _bit1_(val)  ((bit)(val & _BIT1))
#define _bit2_(val)  ((bit)(val & _BIT2))
#define _bit3_(val)  ((bit)(val & _BIT3))
#define _bit4_(val)  ((bit)(val & _BIT4))
#define _bit5_(val)  ((bit)(val & _BIT5))
#define _bit6_(val)  ((bit)(val & _BIT6))
#define _bit7_(val)  ((bit)(val & _BIT7))
#define _bit8_(val)  ((bit)(val & _BIT8))
#define _bit9_(val)  ((bit)(val & _BIT9))
#define _bit10_(val) ((bit)(val & _BIT10))
#define _bit11_(val) ((bit)(val & _BIT11))
#define _bit12_(val) ((bit)(val & _BIT12))
#define _bit13_(val) ((bit)(val & _BIT13))
#define _bit14_(val) ((bit)(val & _BIT14))
#define _bit15_(val) ((bit)(val & _BIT15))

// register
typedef struct _RegUnitType
{
BYTE ucIndex;
BYTE ucValue;
}RegUnitType;

#define _END_OF_TBL_ -1 // end of register table

#endif

⌨️ 快捷键说明

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