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

📄 xiic_options.c

📁 FPGA 并行NOR FLash的操作相关
💻 C
字号:
/* $Id: xiic_options.c,v 1.1 2007/12/03 15:44:58 meinelte Exp $ *//********************************************************************************       XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"*       AS A COURTESY TO YOU, SOLELY FOR USE IN DEVELOPING PROGRAMS AND*       SOLUTIONS FOR XILINX DEVICES.  BY PROVIDING THIS DESIGN, CODE,*       OR INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,*       APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION*       THAT THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,*       AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE*       FOR YOUR IMPLEMENTATION.  XILINX EXPRESSLY DISCLAIMS ANY*       WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE*       IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR*       REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF*       INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS*       FOR A PARTICULAR PURPOSE.**       (c) Copyright 2002 Xilinx Inc.*       All rights reserved.*******************************************************************************//*****************************************************************************//**** @file xiic_options.c** Contains options functions for the XIic component. This file is not required* unless the functions in this file are called.** <pre>* MODIFICATION HISTORY:** Ver   Who  Date     Changes* ----- --- ------- -----------------------------------------------* 1.01b jhl 3/26/02 repartioned the driver* 1.01c ecm 12/05/02 new rev* 1.13a wgr  03/22/07 Converted to new coding style.* </pre>*****************************************************************************//***************************** Include Files *******************************/#include "xiic.h"#include "xiic_i.h"#include "xio.h"/************************** Constant Definitions ***************************//**************************** Type Definitions *****************************//***************** Macros (Inline Functions) Definitions *******************//************************** Function Prototypes ****************************//************************** Variable Definitions **************************//*****************************************************************************//**** This function sets the options for the IIC device driver. The options control* how the device behaves relative to the IIC bus. If an option applies to* how messages are sent or received on the IIC bus, it must be set prior to* calling functions which send or receive data.** To set multiple options, the values must be ORed together. To not change* existing options, read/modify/write with the current options using* XIic_GetOptions().** <b>USAGE EXAMPLE:</b>** Read/modify/write to enable repeated start:* <pre>*   u8 Options;*   Options = XIic_GetOptions(&Iic);*   XIic_SetOptions(&Iic, Options | XII_REPEATED_START_OPTION);* </pre>** Disabling General Call:* <pre>*   Options = XIic_GetOptions(&Iic);*   XIic_SetOptions(&Iic, Options &= ~XII_GENERAL_CALL_OPTION);* </pre>** @param    InstancePtr is a pointer to the XIic instance to be worked on.** @param    NewOptions are the options to be set.  See xiic.h for a list of*           the available options.** @return** None.** @note** Sending or receiving messages with repeated start enabled, and then* disabling repeated start, will not take effect until another master* transaction is completed. i.e. After using repeated start, the bus will* continue to be throttled after repeated start is disabled until a master* transaction occurs allowing the IIC to release the bus.* <br><br>* Options enabled will have a 1 in its appropriate bit position.*****************************************************************************/void XIic_SetOptions(XIic * InstancePtr, u32 NewOptions){	u8 CntlReg;	XASSERT_VOID(InstancePtr != NULL);	XIic_mEnterCriticalRegion(InstancePtr->BaseAddress);	/* Update the options in the instance and get the contents of the control	 * register such that the general call option can be modified	 */	InstancePtr->Options = NewOptions;	CntlReg = XIo_In8(InstancePtr->BaseAddress + XIIC_CR_REG_OFFSET);	/* The general call option is the only option that maps directly to	 * a hardware register feature	 */	if (NewOptions & XII_GENERAL_CALL_OPTION) {		CntlReg |= XIIC_CR_GENERAL_CALL_MASK;	}	else {		CntlReg &= ~XIIC_CR_GENERAL_CALL_MASK;	}	/* Write the new control register value to the register */	XIo_Out8(InstancePtr->BaseAddress + XIIC_CR_REG_OFFSET, CntlReg);	XIic_mExitCriticalRegion(InstancePtr->BaseAddress);}/*****************************************************************************//**** This function gets the current options for the IIC device. Options control* the how the device behaves on the IIC bus. See SetOptions for more information* on options.** @param    InstancePtr is a pointer to the XIic instance to be worked on.** @return** The options of the IIC device. See xiic.h for a list of available options.** @note** Options enabled will have a 1 in its appropriate bit position.*****************************************************************************/u32 XIic_GetOptions(XIic * InstancePtr){	XASSERT_NONVOID(InstancePtr != NULL);	return InstancePtr->Options;}

⌨️ 快捷键说明

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