basictyp.h

来自「ISP1181MCU_FW_Ver1.01.zip是基于飞利浦ISP1181的U」· C头文件 代码 · 共 117 行

H
117
字号
/*
   //*************************************************************************
   //
   //                  P H I L I P S   P R O P R I E T A R Y
   //
   //           COPYRIGHT (c)   1999 BY PHILIPS SINGAPORE.
   //                     --  ALL RIGHTS RESERVED  --
   //
   // File Name:        BasicTyp.H
   // Created:          Oct. 12 2000
   // Modified:
   // Revision: 		1.01
   //
   //*************************************************************************
   //
   //*************************************************************************
   */


#ifndef __BASIC_TYPE_H__
#define __BASIC_TYPE_H__
/*
   //*************************************************************************
   // macros
   //*************************************************************************
*/
#define SWAP(x)   ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))

#define MSB(x)    (((x) >> 8) & 0xFF)
#define LSB(x)    ((x) & 0xFF)

//#define code
//#define idata

#define FALSE   0
#define TRUE    (!FALSE)

#define IRQL_1
#define IRQL_0

/*
   //*************************************************************************
   // basic typedefs
   //*************************************************************************
*/
typedef char				CHAR;
typedef unsigned char       UCHAR;
typedef unsigned short      USHORT;
typedef unsigned long       ULONG;
typedef unsigned char       BOOL;
typedef char *				PCHAR;
typedef unsigned char *     PUCHAR;
typedef unsigned short *    PUSHORT;
typedef unsigned long *     PULONG;
typedef unsigned char       BOOLEAN;

#define BYTE unsigned char
#define WORD unsigned int

#define SFR    sfr		 // 8 bits special function register
#define SBIT   sbit		 // bit access special function register

#define DATA   data		 // direct access internal data RAM
#define IDATA  idata		 // indirect access internal data RAM
#define XDATA  xdata		 // external access external data RAM
#define PDATA  pdata		 // paged access external data RAM
#define CODE   code		 // program code area

#define LOBYTE(x)  (BYTE)((x) >> 8)	//C51 byte ording uses Big Endian(Motorola)
#define HIBYTE(x)  (BYTE)((x) & 0x00ff) //High byte is stored first

typedef union _Address {
	USHORT  IoPort;     /* IoData Port */
	UCHAR * pData;      /* Memory Address */
} ADDRESS;

/*
   //*************************************************************************
   // basic typedefs for structures
   //*************************************************************************
*/
typedef union {
    struct 
    {
        UCHAR Type;
        UCHAR Index;
    } Descriptor;

    struct 
    {
        UCHAR tx0;  // MSB for 8051 Keil C
        UCHAR tx1;   
        UCHAR endp;   
        UCHAR c0;   // LSB for 8051 Keil C
    } chars;

    struct
    {
        USHORT i1;    // MSW for 8051 keil C
        USHORT i0;    // LSW for 8051 Keil C
    } ints;

    ULONG u0;

} FLEXI_ULONG;

typedef union  {
    struct 
    {
        UCHAR c1;   // MSB for 8051 Keil C
        UCHAR c0;   // LSB for 8051 Keil C
    } chars;

    USHORT i0;
} FLEXI_USHORT;

#endif

⌨️ 快捷键说明

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