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

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

?? common.h

?? 在WinAVR下的ST7565圖形點陣的驅動程序
?? H
字號:
/* Copyright (c) 2007 Eric B. Weddington
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are met:

   * Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

   * Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.

   * Neither the name of the copyright holders nor the names of
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE. */

/* $Id: common.h,v 1.3.4.3 2008/03/24 17:11:06 arcanum Exp $ */


#ifndef _AVR_COMMON_H
#define _AVR_COMMON_H

#include <avr/sfr_defs.h>

/* 
This purpose of this header is to define registers that have not been 
previously defined in the individual device IO header files, and to define 
other symbols that are common across AVR device families.

This file is designed to be included in <avr/io.h> after the individual
device IO header files, and after <avr/sfr_defs.h>

*/

/*------------ Registers Not Previously Defined ------------*/

/* 
These are registers that are not previously defined in the individual
IO header files, OR they are defined here because they are used in parts of
avr-libc even if a device is not selected but a general architecture has
been selected.
*/


/*
Stack pointer register.

AVR architecture 1 has no RAM, thus no stack pointer. 

All other architectures do have a stack pointer.  Some devices have only
less than 256 bytes of possible RAM locations (128 Bytes of SRAM
and no option for external RAM), thus SPH is officially "reserved"
for them.
*/
#if __AVR_ARCH__ >= 100
#  ifndef SPL
#    define SPL _SFR_MEM8(0x3D)
#  endif
#  ifndef SPH
#    define SPH _SFR_MEM8(0x3E)
#  endif
#  ifndef SP
#    define SP _SFR_MEM16(0x3D)
#  endif
#elif __AVR_ARCH__ != 1 
#  ifndef SPL
#    define SPL _SFR_IO8(0x3D)
#  endif
#  if XRAMEND < 0x100 && !defined(__COMPILING_AVR_LIBC__)
#    ifndef SP
#      define SP  _SFR_IO8(0x3D)
#    endif
#  else
#    ifndef SP
#      define SP  _SFR_IO16(0x3D)
#    endif
#    ifndef SPH
#      define SPH _SFR_IO8(0x3E)
#    endif
#  endif /* XRAMEND < 0x100 && !defined(__COMPILING_AVR_LIBC__) */
#endif /* __AVR_ARCH__ != 1 */


/* Status Register */
#ifndef SREG
#  if __AVR_ARCH__ >= 100
#    define SREG _SFR_MEM8(0x3F)
#  else
#    define SREG _SFR_IO8(0x3F)
#  endif
#endif


/* SREG bit definitions */
#ifndef SREG_C
#  define SREG_C  (0)
#endif
#ifndef SREG_Z
#  define SREG_Z  (1)
#endif
#ifndef SREG_N
#  define SREG_N  (2)
#endif
#ifndef SREG_V
#  define SREG_V  (3)
#endif
#ifndef SREG_S
#  define SREG_S  (4)
#endif
#ifndef SREG_H
#  define SREG_H  (5)
#endif
#ifndef SREG_T
#  define SREG_T  (6)
#endif
#ifndef SREG_I
#  define SREG_I  (7)
#endif


#if defined(__COMPILING_AVR_LIBC__)

/* AVR 6 Architecture */
#  if __AVR_ARCH__ == 6
#    ifndef EIND
#      define EIND  _SFR_IO8(0X3C)
#    endif
/* XMEGA Architectures */
#  elif __AVR_ARCH__ >= 100
#    ifndef EIND
#      define EIND  _SFR_MEM8(0x3C)
#    endif
#  endif

/*
Only few devices come without EEPROM.  In order to assemble the
EEPROM library components without defining a specific device, we
keep the EEPROM-related definitions here.
*/

/* EEPROM Control Register */
#  ifndef EECR
#    define EECR   _SFR_IO8(0x1C)
#  endif

/* EEPROM Data Register */
#  ifndef EEDR
#    define EEDR   _SFR_IO8(0x1D)
#  endif

/* EEPROM Address Register */
#  ifndef EEAR
#    define EEAR   _SFR_IO16(0x1E)
#  endif
#  ifndef EEARL
#    define EEARL  _SFR_IO8(0x1E)
#  endif
#  ifndef EEARH
#    define EEARH  _SFR_IO8(0x1F)
#  endif

/* EEPROM Control Register bits */
#  ifndef EERE
#    define EERE   (0)
#  endif
#  ifndef EEWE
#    define EEWE   (1)
#  endif
#  ifndef EEMWE
#    define EEMWE  (2)
#  endif
#  ifndef EERIE
#    define EERIE  (3)
#  endif

#endif /* __COMPILING_AVR_LIBC__ */



/*------------ Common Symbols ------------*/

/* 
Generic definitions for registers that are common across multiple AVR devices
and families.
*/

/* Pointer registers definitions */
#if __AVR_ARCH__ != 1  /* avr1 does not have X and Y pointers */
#  define XL  r26
#  define XH  r27
#  define YL  r28
#  define YH  r29
#endif /* #if __AVR_ARCH__ != 1 */
#define ZL  r30
#define ZH  r31


/* Status Register */
#if defined(SREG)
#  define AVR_STATUS_REG   SREG
#  if __AVR_ARCH__ >= 100
#    define AVR_STATUS_ADDR  _SFR_MEM_ADDR(SREG)
#  else
#    define AVR_STATUS_ADDR  _SFR_IO_ADDR(SREG)
#  endif
#endif

/* Stack Pointer (combined) Register */
#if defined(SP)
#  define AVR_STACK_POINTER_REG   SP
#  if __AVR_ARCH__ >= 100
#    define AVR_STACK_POINTER_ADDR  _SFR_MEM_ADDR(SP)
#  else
#    define AVR_STACK_POINTER_ADDR  _SFR_IO_ADDR(SP)
#  endif
#endif

/* Stack Pointer High Register */
#if defined(SPH)
#  define _HAVE_AVR_STACK_POINTER_HI 1
#  define AVR_STACK_POINTER_HI_REG   SPH
#  if __AVR_ARCH__ >= 100
#    define AVR_STACK_POINTER_HI_ADDR  _SFR_MEM_ADDR(SPH)
#  else
#    define AVR_STACK_POINTER_HI_ADDR  _SFR_IO_ADDR(SPH)
#  endif
#endif

/* Stack Pointer Low Register */
#if defined(SPL)
#  define AVR_STACK_POINTER_LO_REG   SPL
#  if __AVR_ARCH__ >= 100
#    define AVR_STACK_POINTER_LO_ADDR  _SFR_MEM_ADDR(SPL)
#  else
#    define AVR_STACK_POINTER_LO_ADDR  _SFR_IO_ADDR(SPL)
#  endif
#endif

/* RAMPZ Register */
#if defined(RAMPZ)
#  define AVR_RAMPZ_REG   RAMPZ
#  if __AVR_ARCH__ >= 100
#    define AVR_RAMPZ_ADDR  _SFR_MEM_ADDR(RAMPZ)
#  else
#    define AVR_RAMPZ_ADDR  _SFR_IO_ADDR(RAMPZ)
#  endif
#endif

/* Extended Indirect Register */
#if defined(EIND)
#  define AVR_EXTENDED_INDIRECT_REG   EIND
#  if __AVR_ARCH__ >= 100
#    define AVR_EXTENDED_INDIRECT_ADDR  _SFR_MEM_ADDR(EIND)
#  else
#    define AVR_EXTENDED_INDIRECT_ADDR  _SFR_IO_ADDR(EIND)
#  endif
#endif

/*------------ Workaround to old compilers (4.1.2 and earlier)  ------------*/

#ifndef __AVR_HAVE_MOVW__
# if  defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
#  define __AVR_HAVE_MOVW__ 1
# endif
#endif

#ifndef __AVR_HAVE_LPMX__
# if  defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
#  define __AVR_HAVE_LPMX__ 1
# endif
#endif

#ifndef __AVR_HAVE_MUL__
# if  defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
#  define __AVR_HAVE_MUL__ 1
# endif
#endif

#endif /* _AVR_COMMON_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区三区三区| 欧美日韩一级片网站| 中日韩免费视频中文字幕| 国产.欧美.日韩| 国产精品二三区| 色香色香欲天天天影视综合网| 一区二区三区蜜桃| 欧美精选一区二区| 国内精品伊人久久久久影院对白| 国产日韩影视精品| 91日韩在线专区| 日韩中文字幕麻豆| 欧美精品一区二区三区高清aⅴ| 国产不卡视频一区二区三区| 亚洲色图.com| 91精品欧美一区二区三区综合在 | 91福利资源站| 亚洲va欧美va人人爽| 日韩视频免费观看高清完整版在线观看| 精品一区二区三区在线播放视频| 国产精品视频免费| 欧美中文字幕一区二区三区亚洲| 天天综合色天天综合色h| 精品国产电影一区二区| 成人av免费网站| 午夜精品久久久久久久蜜桃app| 精品欧美乱码久久久久久| 99视频有精品| 日韩成人一区二区三区在线观看| 国产亚洲一区字幕| 欧洲在线/亚洲| 狠狠色狠狠色综合日日91app| 国产精品成人一区二区三区夜夜夜| 欧美少妇bbb| 国产激情偷乱视频一区二区三区| 一区二区三区免费观看| 精品国产凹凸成av人网站| 色综合天天视频在线观看| 喷水一区二区三区| 成人欧美一区二区三区视频网页| 欧美顶级少妇做爰| 不卡区在线中文字幕| 日韩电影在线观看一区| 国产精品素人一区二区| 欧美日产国产精品| 成人的网站免费观看| 午夜精品久久久久影视| 国产精品理论片在线观看| 538在线一区二区精品国产| 成人精品鲁一区一区二区| 日韩成人一级大片| 亚洲欧美日韩国产一区二区三区| 日韩欧美自拍偷拍| 日本精品一区二区三区高清 | 91激情五月电影| 精品在线播放免费| 亚洲影视在线播放| 欧美精彩视频一区二区三区| 欧美日韩国产精品成人| av欧美精品.com| 精品一区二区三区av| 亚洲国产精品自拍| 国产精品毛片久久久久久久| 日韩欧美卡一卡二| 欧美亚洲国产一区二区三区 | 欧美一区二区三区啪啪| 99国产精品久久| 国产美女在线精品| 日本不卡视频在线观看| 亚洲精品高清视频在线观看| 国产日产欧美一区| 日韩免费性生活视频播放| 欧美日韩黄视频| 91蜜桃视频在线| 成人亚洲精品久久久久软件| 经典一区二区三区| 日韩专区在线视频| 亚洲国产精品麻豆| 亚洲同性gay激情无套| 成人高清免费观看| 国产一区二区三区免费看| 男人操女人的视频在线观看欧美| 亚洲一级二级三级在线免费观看| 国产精品国产三级国产aⅴ中文| 亚洲精品在线观看网站| 欧美一区二区三区色| 欧美日韩久久一区| 欧美在线啊v一区| 91免费看片在线观看| 播五月开心婷婷综合| 国产一区二区电影| 久99久精品视频免费观看| 日韩黄色小视频| 午夜精品一区二区三区免费视频| 樱花草国产18久久久久| 综合中文字幕亚洲| 中文字幕日本乱码精品影院| 亚洲国产精品传媒在线观看| 国产日韩欧美一区二区三区综合| 久久一区二区视频| 久久综合色婷婷| 精品免费国产二区三区| 日韩精品中文字幕在线一区| 欧美一二三四在线| 日韩欧美中文一区二区| 日韩欧美一二三| 精品久久久三级丝袜| 精品国产乱子伦一区| 亚洲精品在线观看视频| 精品国产第一区二区三区观看体验 | 国产91丝袜在线播放0| 国产成人aaa| 粉嫩一区二区三区在线看| 国产**成人网毛片九色| 成人福利视频在线| 91在线观看污| 91黄色激情网站| 欧美日韩精品专区| 91精品在线免费| 精品成a人在线观看| 久久久精品国产99久久精品芒果| 久久久国产午夜精品| 日本一区二区成人| 亚洲欧美电影一区二区| 亚洲午夜羞羞片| 日韩电影在线一区二区三区| 久久电影网站中文字幕| 国产河南妇女毛片精品久久久| 粉嫩av亚洲一区二区图片| 99视频精品在线| 欧美在线视频日韩| 91精品国产品国语在线不卡| 精品人在线二区三区| 亚洲国产精品成人综合| 亚洲女人小视频在线观看| 亚洲午夜免费视频| 精品日韩av一区二区| 国产无人区一区二区三区| 国产精品伦理在线| 亚洲自拍都市欧美小说| 日本不卡123| 国产suv精品一区二区三区| 91啪九色porn原创视频在线观看| 欧美在线免费观看亚洲| 欧美大白屁股肥臀xxxxxx| 国产视频一区在线观看| 亚洲男女一区二区三区| 日韩精品一级二级| 国产成+人+日韩+欧美+亚洲| 一本到不卡免费一区二区| 51午夜精品国产| 国产清纯美女被跳蛋高潮一区二区久久w| 日韩美女久久久| 青青草97国产精品免费观看| 成人自拍视频在线| 欧美丝袜丝交足nylons图片| 精品卡一卡二卡三卡四在线| 亚洲视频你懂的| 人人狠狠综合久久亚洲| 成人高清伦理免费影院在线观看| 欧美日韩aaa| 欧美国产视频在线| 婷婷久久综合九色国产成人| 国产精品一区在线观看你懂的| 色欧美乱欧美15图片| 精品少妇一区二区三区在线播放| 亚洲欧洲国产日韩| 蜜桃av一区二区三区电影| www..com久久爱| 日韩一区二区免费电影| 中文字幕一区二区在线播放| 日韩国产欧美在线视频| 波多野结衣中文一区| 制服.丝袜.亚洲.中文.综合| 国产精品久久免费看| 日韩av二区在线播放| 成人av综合在线| 日韩一卡二卡三卡四卡| 91影院在线观看| 欧美成人精精品一区二区频| 亚洲人成网站色在线观看| 激情综合网最新| 91久久精品一区二区| 久久久久久一二三区| 性做久久久久久久久| 暴力调教一区二区三区| 欧美电影免费观看高清完整版在| 亚洲精品视频在线观看网站| 国产一区二区三区免费播放| 欧美人动与zoxxxx乱| 一区在线中文字幕| 国产一区二区三区蝌蚪| 欧美精品v日韩精品v韩国精品v| 中文字幕一区二区三区四区不卡| 久久99精品久久久久久国产越南 | 国产亚洲成年网址在线观看| 日韩有码一区二区三区| 色老汉一区二区三区| 国产精品青草久久| 久久99精品视频|