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

📄 oc_i2c_master.h

📁 Opencore提供的I2C代码
💻 H
字号:
/*/////////////////////////////////////////////////////////////////////////                                                             ////////  Include file for OpenCores I2C Master core                 ////////                                                             ////////  File    : oc_i2c_master.h                                  ////////  Function: c-include file                                   ////////                                                             ////////  Authors: Richard Herveille (richard@asics.ws)              ////////           Filip Miletic                                     ////////                                                             ////////           www.opencores.org                                 ////////                                                             /////////////////////////////////////////////////////////////////////////////                                                             //////// Copyright (C) 2001 Richard Herveille                        ////////                    Filip Miletic                            ////////                                                             //////// This source file may be used and distributed without        //////// restriction provided that this copyright statement is not   //////// removed from the file and that any derivative work contains //////// the original copyright notice and the associated disclaimer.////////                                                             ////////     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     //////// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   //////// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   //////// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      //////// 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.                                 ////////                                                             /////////////////////////////////////////////////////////////////////////*//* * Definitions for the Opencores i2c master core *//* --- Definitions for i2c master's registers --- */	/* ----- Read-write access                                            */#define OC_I2C_PRER_LO 0x00     /* Low byte clock prescaler register  */	#define OC_I2C_PRER_HI 0x01     /* High byte clock prescaler register */	#define OC_I2C_CTR     0x02     /* Control register                   */											/* ----- Write-only registers                                         */										#define OC_I2C_TXR     0x03     /* Transmit byte register             */	#define OC_I2C_CR      0x04     /* Command register                   */		/* ----- Read-only registers                                          */										#define OC_I2C_RXR     0x03     /* Receive byte register              */#define OC_I2C_SR      0x04     /* Status register                    */	/* ----- Bits definition                                              */	/* ----- Control register                                             */	#define OC_I2C_EN (1<<7)        /* Core enable bit:                   */                                /*      1 - core is enabled           */                                /*      0 - core is disabled          */#define OC_I2C_IEN (1<<6)       /* Interrupt enable bit               */                                /*      1 - Interrupt enabled         */                                /*      0 - Interrupt disabled        */                                /* Other bits in CR are reserved      *//* ----- Command register bits                                        */ #define OC_I2C_STA (1<<7)       /* Generate (repeated) start condition*/#define OC_I2C_STO (1<<6)       /* Generate stop condition            */#define OC_I2C_RD  (1<<5)       /* Read from slave                    */#define OC_I2C_WR  (1<<4)       /* Write to slave                     */#define OC_I2C_ACK (1<<3)       /* Acknowledge from slave             */                                /*      1 - ACK                       */                                /*      0 - NACK                      */#define OC_I2C_IACK (1<<0)      /* Interrupt acknowledge              *//* ----- Status register bits                                         */#define OC_I2C_RXACK (1<<7)     /* ACK received from slave            */                                /*      1 - ACK                       */                                /*      0 - NACK                      */#define OC_I2C_BUSY  (1<<6)     /* Busy bit                           */#define OC_I2C_TIP   (1<<1)     /* Transfer in progress               */#define OC_I2C_IF    (1<<0)     /* Interrupt flag                     *//* bit testing and setting macros                                     */#define OC_ISSET(reg,bitmask)       ((reg)&(bitmask))#define OC_ISCLEAR(reg,bitmask)     (!(OC_ISSET(reg,bitmask)))#define OC_BITSET(reg,bitmask)      ((reg)|(bitmask))#define OC_BITCLEAR(reg,bitmask)    ((reg)|(~(bitmask)))#define OC_BITTOGGLE(reg,bitmask)   ((reg)^(bitmask))#define OC_REGMOVE(reg,value)       ((reg)=(value))

⌨️ 快捷键说明

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