亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? compiler.h

?? atmel c5122 USB C51程序
?? H
字號:
/*H**************************************************************************
* NAME:         compiler.h
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      c5122-scib-usb-hid-2_4_0      
* FILE_REV:     1.16     
*----------------------------------------------------------------------------
* PURPOSE:
* This file redefines dedicated KEIL, RAISONANCE and TASKINKG C51/C251
* keywords in order to ensure that any source file can be processed by
* these compilers.
*****************************************************************************/

#ifndef _COMPILER_H_
#define _COMPILER_H_

/*_____ I N C L U D E S ____________________________________________________*/


/*_____ D E C L A R A T I O N S ____________________________________________*/
#ifndef ASM_INCLUDE // define ASM_INCLUDE in your a51 source code before include of .h file
typedef unsigned char       Uchar;
typedef float               Float16;

typedef unsigned char       Uint8;
typedef unsigned int        Uint16;
typedef unsigned long int   Uint32;

typedef char                Int8;
typedef int                 Int16;
typedef long int            Int32;

typedef unsigned char       Bool;
typedef unsigned char       Byte;
typedef unsigned int        Word;
typedef unsigned long int   DWord;

typedef union 
{
  Uint32 dw; // l changed in dw (double word) because l is used for signed long...
  Uint16 w[2];
  Uint8  b[4];
} Union32;

typedef union 
{
  Uint16 w;
  Uint8  b[2];
} Union16;
#endif

/*_____ M A C R O S ________________________________________________________*/
/* little-big endian management */
#define INTEL_ALIGNMENT     LITTLE_ENDIAN
#define MOTOROLA_ALIGNMENT  BIG_ENDIAN

// Union16/32 endian handlers
#ifdef LITTLE_ENDIAN     // => 16bit: (LSB,MSB), 32bit: (LSW,MSW) or (LSB0,LSB1,LSB2,LSB3) or (MSB3,MSB2,MSB1,MSB0)
#define MSB(union16)        ((union16).b[1])
#define LSB(union16)        (*(union16).b)
#define MSW(union32)        ((union32).w[1])
#define LSW(union32)        (*(union32).w)
#define MSB0(union32)       ((union32).b[3])
#define MSB1(union32)       ((union32).b[2])
#define MSB2(union32)       ((union32).b[1])
#define MSB3(union32)       (*(union32).b)
#define LSB0(union32)       (*(union32).b)
#define LSB1(union32)       ((union32).b[1])
#define LSB2(union32)       ((union32).b[2])
#define LSB3(union32)       ((union32).b[3])
#else // BIG_ENDIAN         => 16bit: (MSB,LSB), 32bit: (MSW,LSW) or (LSB3,LSB2,LSB1,LSB0) or (MSB0,MSB1,MSB2,MSB3)
#define MSB(union16)        (*((Union16*)&union16)->b)
#define LSB(union16)        (((Union16*)&union16)->b[1])
#define MSW(union32)        (*((Union32*)&union32)->w)
#define LSW(union32)        (((Union32*)&union32)->w[1])
#define MSB0(union32)       (*((Union32*)&union32)->b)
#define MSB1(union32)       (((Union32*)&union32)->b[1])
#define MSB2(union32)       (((Union32*)&union32)->b[2])
#define MSB3(union32)       (((Union32*)&union32)->b[3])
#define LSB0(union32)       (((Union32*)&union32)->b[3])
#define LSB1(union32)       (((Union32*)&union32)->b[2])
#define LSB2(union32)       (((Union32*)&union32)->b[1])
#define LSB3(union32)       (*((Union32*)&union32)->b)
#endif

// Endian converters
#define LE16(b) (((Uint16)((b) & 0xFF) << 8) | (((Uint16)(b) & 0xFF00) >> 8))
#define LE32(b) (((Uint32)((b) & 0xFF) << 24) | ((Uint32)((Uint16)(b) & 0xFF00) << 8) | \
                   (((Uint32)(b) & 0xFF0000) >> 8) | (((Uint32)(b) & 0xFF000000) >> 24))

// host to network conversion: used for Intel HEX format, TCP/IP, ...
// Convert a 16-bit value from host-byte order to network-byte order
// Standard Unix, POSIX 1003.1g (draft)
#ifdef LITTLE_ENDIAN
#define htons(a)    LE16(a)
#define ntohs(a)    htons(a)
#define htonl(a)    LE32(a)
#define ntohl(a)    htonl(a)
#else
#define htons(a)    (a)
#define ntohs(a)    (a)
#define htonl(a)    (a)
#define ntohl(a)    (a)
#endif

/* Memory Type Location */
#ifndef _ConstType_
#define _ConstType_ code
#endif

#ifndef _MemType_
#define _MemType_
#endif

#ifndef _GenericType_
#define _GenericType_
#endif

/* Constants */
#define FALSE   0
#define TRUE    1
#define KO      0
#define OK      1
#define OFF     0
#define ON      1
#ifndef ASM_INCLUDE // define ASM_INCLUDE in your a51 source code before include of .h file
#define CLR     0
#define SET     1
#endif

/* Bit and bytes manipulations */
#define LOW(U16)                ((Uchar)U16)
#define HIGH(U16)               ((Uchar)(U16>>8))
#define TST_BIT_X(addrx,mask)   (*addrx & mask)
#define SET_BIT_X(addrx,mask)   (*addrx = (*addrx | mask))
#define CLR_BIT_X(addrx,mask)   (*addrx = (*addrx & ~mask))
#define OUT_X(addrx,value)      (*addrx = value)
#define IN_X(addrx)             (*addrx)

/*M**************************************************************************
* NAME: Long_call
*----------------------------------------------------------------------------
* PARAMS:
* addr: address of the routine to call
*----------------------------------------------------------------------------
* PURPOSE: 
* Call the routine at address addr: generate an Assembly LCALL addr opcode.
*----------------------------------------------------------------------------
* EXAMPLE:
* Long_call(0); // Software reset (if no IT used before)
*----------------------------------------------------------------------------
* NOTE: 
* May be used as a long jump opcode in some special cases
*****************************************************************************/
#define Long_call(addr)         ((*(void (_ConstType_*)(void))(addr))())

/* {For Langdoc} */

/***********************************************************
 SET_SFR_BIT macro 
  parameters 
    sfr_reg : defined value in include file for sfr register 
    bit_pos : defined value B_XX in include file for particular
              bit of sfr register 
    bit_val : CLR / SET 
************************************************************/
#define SET_SFR_BIT(sfr_reg, bit_pos, bit_val) { sfr_reg &= ~(1<<(bit_pos)); sfr_reg |= ((bit_val)<<(bit_pos));}

/***********************************************************
 TST_SFR_BIT macro 
  parameters 
    sfr_reg : defined value in include file for sfr register 
    bit_pos : defined value B_XX in include file for particular
              bit of sfr register 
************************************************************/
#define TST_SFR_BIT(sfr_reg, bit_pos) ((sfr_reg & (1<<(bit_pos)))>>(bit_pos))

#ifdef KEIL             /* KEIL compiler */

#define Reentrant(x)    x reentrant
#define Sfr(x,y)        sfr x = y
#define Sfr16(x,y)      sfr16 x = y
#define Sbit(x,y,z)     sbit x = y ^ z
#define Interrupt(x,y)  x interrupt y
#define At(x)           _at_ x

#ifdef __C51__          /* C51 Compiler */
#define far  xdata      /* far is for C251 only */  
#endif

#endif                  /* End of KEIL */


#ifdef RAISONANCE       /* RAISONANCE compiler */

#define Reentrant(x)    x reentrant
#define Sfr(x,y)        sfr x = y
#define Sbit(x,y,z)     sbit x = y ^ z
#define Interrupt(x,y)  x interrupt y
#define At(x)           _at_ x

#ifdef __C51__          /* C51 Compiler */
#define far  xdata      /* far is for 251 only */
#endif

#endif                  /* End of RAISONANCE */


#ifdef TASKING          /* TASKING compiler */

#include <keil.h>       /* Include Tasking / Keil compatibility header file */ 

#define far             _far
#define Reentrant(x)    _reentrant x
#define Sfr(x,y)        _sfrbyte x _at(y)
#define Sbit(x,y,z)     _sfrbit x _atbit(y,z)
#define Interrupt(x,y)  _interrupt(y) x

#endif                  /* End of TASKING */
#ifdef _IAR_AVR_  
        
#define __IOMACRO_H

#define TID_GUARD(proc) ((__TID__ & 0x7FF0) != ((90 << 8) | ((proc) << 4)))

#if !(__IAR_SYSTEMS_ICC__ > 2) && !defined(__IAR_SYSTEMS_ASM__)
#error This file should only be compiled with iccavr or aavr.
#endif /* !(__IAR_SYSTEMS_ICC__ > 2) && !defined __IAR_SYSTEMS_ASM__ */

/* The assembler uses a special set of macros... */
#ifdef __IAR_SYSTEMS_ASM__

/* Byte sized SFRs */
#define SFR_B_BITS(_NAME,_ADDR,_A,_B,_C,_D,_E,_F,_G,_H)\
	sfrb	_NAME = _ADDR
#define SFR_B_BITS_EXT(_NAME,_ADDR,_A,_B,_C,_D,_E,_F,_G,_H)\
	sfrb	_NAME = _ADDR
#define SFR_B2_BITS(_NAME1,_NAME2,_ADDR,_A,_B,_C,_D,_E,_F,_G,_H)\
	ASMSFRB2 _NAME1, _NAME2, _ADDR

ASMSFRB2 MACRO
	sfrb	\1 = \3
	sfrb	\2 = \3
	ENDM


/* Word sized SFRs, needs to be expanded into an assembler macro first. */
#define SFR_W_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P)\
	ASMSFRW	_NAME, _ADDR

#define SFR_W_BITS_EXT(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P)\
	ASMSFRW	_NAME, _ADDR

ASMSFRW	MACRO
	sfrw	\1  = \2
	sfrb	\1L = (\2+0)
	sfrb	\1H = (\2+1)
	ENDM

#endif /* __IAR_SYSTEMS_ASM__ */

#ifdef __ICCAVR__

#define __BYTEBITS(_NAME,_A,_B,_C,_D,_E,_F,_G,_H) \
unsigned char _NAME ## _ ## _A:1, \
              _NAME ## _ ## _B:1, \
              _NAME ## _ ## _C:1, \
              _NAME ## _ ## _D:1, \
              _NAME ## _ ## _E:1, \
              _NAME ## _ ## _F:1, \
              _NAME ## _ ## _G:1, \
              _NAME ## _ ## _H:1;

#define SFR_B_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H) \
    __io union { \
      unsigned char   _NAME;           /* The sfrb as 1 byte */ \
      struct {                        /* The sfrb as 8 bits */ \
        __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H) \
      };  \
    } @ _ADDR;
#define SFR_B2_BITS(_NAME1, _NAME2, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H) \
    __io union { \
      unsigned char   _NAME1;           /* The sfrb as 1 byte */ \
      unsigned char   _NAME2;           /* The sfrb as 1 byte */ \
      struct {                        /* The sfrb as 8 bits */ \
        __BYTEBITS(_NAME1, _A,_B,_C,_D,_E,_F,_G,_H) \
      };  \
      struct {                        /* The sfrb as 8 bits */ \
        __BYTEBITS(_NAME2, _A,_B,_C,_D,_E,_F,_G,_H) \
      };  \
    } @ _ADDR;
#define SFR_B_BITS_EXT(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H) \
    __tiny __no_init volatile union { \
      unsigned char   _NAME;           /* The sfrb as 1 byte */ \
      struct {                        /* The sfrb as 8 bits */ \
        __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H) \
      };  \
    } @ _ADDR;
  
#define SFR_W_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P) \
    __io union { \
      unsigned short  _NAME;  /* The sfrw as 1 short */ \
      struct {                /* The sfrw as 16 bits */ \
        __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H)   /* Bit names defined by user */  \
        __BYTEBITS(_NAME, _I,_J,_K,_L,_M,_N,_O,_P)   /* Bit names defined by user */  \
      };  \
      struct { /* The sfrw as 2 bytes */ \
        unsigned char _NAME ## L; \
        unsigned char _NAME ## H; \
      };  \
      struct {                          /* The sfrw as 2 x 8 bits */ \
        __BYTEBITS(_NAME ## L, Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)  /* Bit names hard coded to 0-7 */ \
        __BYTEBITS(_NAME ## H, Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)  /* Bit names hard coded to 0-7 */ \
      };  \
    } @ _ADDR;

#define SFR_W_BITS_EXT(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P) \
   __tiny __no_init volatile union { \
    unsigned short  _NAME;   \
     struct {                /* The sfrw_ext as 16 bits */ \
        __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H)   /* Bit names defined by user */  \
        __BYTEBITS(_NAME, _I,_J,_K,_L,_M,_N,_O,_P)   /* Bit names defined by user */  \
      };  \
      struct { /* The sfrw _ext as 2 bytes */ \
        unsigned char _NAME ## L; \
        unsigned char _NAME ## H; \
      };  \
      struct {                          /* The sfrw_ext as 2 x 8 bits */ \
        __BYTEBITS(_NAME ## L, Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)  /* Bit names hard coded to 0-7 */ \
        __BYTEBITS(_NAME ## H, Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)  /* Bit names hard coded to 0-7 */ \
      };  \
    } @ _ADDR;

#endif /* __ICCAVR__ */

#define SFR_B(_NAME, _ADDR) SFR_B_BITS(_NAME, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)
#define SFR_B2(_NAME1, _NAME2, _ADDR) SFR_B2_BITS(_NAME1, _NAME2, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)
#define SFR_B_EXT(_NAME, _ADDR) SFR_B_BITS_EXT(_NAME, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)

#define SFR_W(_NAME, _ADDR)  SFR_W_BITS(_NAME, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7, \
                                    Bit8,Bit9,Bit10,Bit11,Bit12,Bit13,Bit14,Bit15)

#define SFR_W_EXT(_NAME, _ADDR)  SFR_W_BITS_EXT(_NAME, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7, \
                                    Bit8,Bit9,Bit10,Bit11,Bit12,Bit13,Bit14,Bit15)

#endif /* _IAR_AVR_ */





#endif /* _COMPILER_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲五码中文字幕| 色哟哟亚洲精品| 琪琪一区二区三区| 午夜精品123| 亚洲一区在线播放| 一区二区三区精品视频在线| 一区二区三区中文免费| 一区二区三区免费在线观看| 一区二区三区四区在线播放| 亚洲一区在线免费观看| 婷婷综合另类小说色区| 日本亚洲欧美天堂免费| 免费成人在线观看| 国产老妇另类xxxxx| 国产成人精品在线看| 成人爱爱电影网址| 91麻豆精品秘密| 色琪琪一区二区三区亚洲区| 精品视频在线看| 欧美一区二区在线观看| 精品国产乱码久久久久久影片| 精品人伦一区二区色婷婷| 久久众筹精品私拍模特| 国产精品久久久久久久久动漫| 中文字幕一区二区日韩精品绯色| 亚洲欧美电影院| 亚洲一区二区三区中文字幕| 午夜在线电影亚洲一区| 极品少妇xxxx精品少妇| 国产成人免费在线视频| 色婷婷精品久久二区二区蜜臂av| 欧美偷拍一区二区| 精品国产一区二区三区忘忧草| 夜夜精品视频一区二区| 三级久久三级久久久| 激情偷乱视频一区二区三区| 东方aⅴ免费观看久久av| 91日韩精品一区| 在线成人免费观看| 久久精品亚洲麻豆av一区二区| 亚洲欧洲精品天堂一级| 亚洲18影院在线观看| 狠狠网亚洲精品| 色哟哟精品一区| 69堂成人精品免费视频| 欧美激情在线看| 亚洲综合网站在线观看| 激情综合色丁香一区二区| av激情综合网| 日韩视频免费观看高清完整版在线观看 | 国产一区二区三区免费看 | 亚洲一卡二卡三卡四卡| 国产精品女主播av| 樱花影视一区二区| 亚洲国产精品一区二区久久 | 在线亚洲免费视频| 欧美三级日本三级少妇99| 欧美mv日韩mv国产网站| 综合婷婷亚洲小说| 亚洲国产精品一区二区尤物区| 亚洲国产日韩综合久久精品| 久久婷婷成人综合色| 亚洲人被黑人高潮完整版| 久久福利视频一区二区| 欧美天天综合网| 国产精品你懂的在线| 日本大胆欧美人术艺术动态 | 日本韩国视频一区二区| 日韩久久精品一区| 亚洲愉拍自拍另类高清精品| 风间由美中文字幕在线看视频国产欧美| 欧美日韩成人综合天天影院| 亚洲人成人一区二区在线观看| 国产乱码精品一品二品| 91精品国产91综合久久蜜臀| 亚洲免费av网站| 成人在线视频首页| 久久久综合九色合综国产精品| 日欧美一区二区| 色国产综合视频| 国产精品嫩草影院com| 国产一区二区免费视频| 日韩亚洲欧美中文三级| 亚洲一区二区精品3399| 波多野结衣亚洲| 国产欧美综合色| 久久成人综合网| 91精品国产91久久综合桃花 | 日韩高清国产一区在线| 在线观看日韩一区| 亚洲人成网站精品片在线观看| 粉嫩高潮美女一区二区三区 | 一级精品视频在线观看宜春院 | 91在线观看一区二区| 国产清纯白嫩初高生在线观看91| 久久91精品久久久久久秒播 | 日日摸夜夜添夜夜添精品视频| 欧洲精品一区二区三区在线观看| 亚洲欧美日韩在线不卡| 不卡一区二区在线| 国产精品理论片| eeuss鲁片一区二区三区| 亚洲国产经典视频| 成人看片黄a免费看在线| 久久男人中文字幕资源站| 国内精品免费**视频| 久久九九影视网| 国产91综合一区在线观看| 国产日韩精品一区二区浪潮av| 国产精品一区二区视频| 久久―日本道色综合久久| 国产成人免费在线视频| 国产精品免费丝袜| 暴力调教一区二区三区| 亚洲乱码一区二区三区在线观看| 色噜噜狠狠成人中文综合| 亚洲一区二区三区三| 欧美二区乱c少妇| 免费观看一级特黄欧美大片| 精品久久一二三区| 激情五月激情综合网| 国产区在线观看成人精品| 成人精品一区二区三区四区| 亚洲欧洲精品一区二区精品久久久| 色综合天天综合给合国产| 亚洲一区二区精品3399| 欧美日韩五月天| 精一区二区三区| 国产精品网站在线播放| 色久优优欧美色久优优| 亚洲1区2区3区视频| 日韩久久免费av| 国产91丝袜在线播放| 国产精品久久久久久久久晋中| 欧美性猛片aaaaaaa做受| 蜜臀va亚洲va欧美va天堂| 国产欧美一区二区三区网站 | 日本道免费精品一区二区三区| 亚洲国产综合91精品麻豆| 日韩视频一区二区三区在线播放| 国产激情视频一区二区在线观看 | 精品国产91久久久久久久妲己| 国产91精品在线观看| 一区二区三区日韩精品| 日韩一区二区电影| 福利一区福利二区| 亚洲成人精品一区二区| 久久免费看少妇高潮| 在线亚洲一区观看| 国产一区二三区好的| 伊人色综合久久天天| 精品日韩在线一区| 91一区在线观看| 精品一区二区三区免费| 亚洲欧美日韩国产一区二区三区| 日韩视频在线观看一区二区| 91丨porny丨首页| 美女国产一区二区三区| 亚洲精品视频免费看| 26uuu国产日韩综合| 欧美性大战xxxxx久久久| 国产精品一区二区在线播放 | 久久精品久久综合| 亚洲婷婷国产精品电影人久久| 日韩免费观看高清完整版在线观看| 成人18视频在线播放| 奇米一区二区三区av| 亚洲欧美另类在线| 久久久青草青青国产亚洲免观| 欧美亚洲禁片免费| 成人黄色软件下载| 久久草av在线| 首页欧美精品中文字幕| 综合精品久久久| 久久久五月婷婷| 日韩一区二区三区免费观看| 91豆麻精品91久久久久久| 成人少妇影院yyyy| 狠狠色丁香久久婷婷综| 日韩精品免费专区| 亚洲综合视频网| 国产精品全国免费观看高清 | 日韩av在线播放中文字幕| 亚洲三级免费观看| 中文av一区特黄| 精品久久久久久综合日本欧美| 欧美理论电影在线| 欧美三级韩国三级日本一级| av电影在线不卡| 国产成人免费xxxxxxxx| 国产在线精品一区在线观看麻豆| 日本亚洲三级在线| 日本午夜精品视频在线观看| 亚洲在线观看免费视频| 一区二区三区四区精品在线视频 | 国产精品伊人色| 麻豆成人免费电影| 首页综合国产亚洲丝袜| 婷婷国产在线综合| 亚洲成人手机在线|