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

📄 typedef.h

📁 MST720-DEMO程序
💻 H
字号:
/*
			      MStar Test Code
			     -----------------

	Copyright 2003 MStar Semiconductors Limited,
	All rights are reserved. Reproduction in whole or in part is prohibited
	without the prior written consent of the copyright owner.

	COMPANY CONFIDENTIAL

	Filename : TypeDef.h


Rev	Date	    Author	    Comments
-------------------------------------------------------------------------------
001	2005-01-11  Sanger Huang    Initial Version

@begin
@module
	TypeDef.h
	Header file for the KEIL C compiler.
@end
*/

#ifndef _TYPE_DEFINE_H
#define _TYPE_DEFINE_H


/**********************
* INCLUDE FILES       *
***********************/

//////////////////////////////////////////////
// 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 int		SINT;
typedef char		SCHAR;

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)

/**********************
* GLOBAL MACROS       *
***********************/
#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	 /* _TYPE_DEFINE_H  */

⌨️ 快捷键说明

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