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

📄 xtmrctr.h

📁 XINLINX公司开发板的嵌入式源代码
💻 H
字号:
/* $Id: xtmrctr.h,v 1.2 2007/05/31 00:29:42 wre 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-2007 Xilinx Inc.*       All rights reserved.*******************************************************************************//*****************************************************************************//**** @file xtmrctr.h** The Xilinx timer/counter component. This component supports the Xilinx* timer/counter. More detailed description of the driver operation can* be found in the xtmrctr.c file.** The Xilinx timer/counter supports the following features:*   - Polled mode.*   - Interrupt driven mode*   - enabling and disabling specific timers*   - PWM operation** The driver does not currently support the PWM operation of the device.** The timer counter operates in 2 primary modes, compare and capture. In* either mode, the timer counter may count up or down, with up being the* default.** Compare mode is typically used for creating a single time period or multiple* repeating time periods in the auto reload mode, such as a periodic interrupt.* When started, the timer counter loads an initial value, referred to as the* compare value, into the timer counter and starts counting down or up. The* timer counter expires when it rolls over/under depending upon the mode of* counting. An external compare output signal may be configured such that a* pulse is generated with this signal when it hits the compare value.** Capture mode is typically used for measuring the time period between* external events. This mode uses an external capture input signal to cause* the value of the timer counter to be captured. When started, the timer* counter loads an initial value, referred to as the compare value,* The timer can be configured to either cause an interrupt when the count* reaches the compare value in compare mode or latch the current count* value in the capture register when an external input is asserted* in capture mode. The external capture input can be enabled/disabled using the* XTmrCtr_SetOptions function. While in compare mode, it is also possible to* drive an external output when the compare value is reached in the count* register The external compare output can be enabled/disabled using the* XTmrCtr_SetOptions function.** <b>Interrupts</b>** It is the responsibility of the application to connect the interrupt* handler of the timer/counter to the interrupt source. The interrupt* handler function, XTmrCtr_InterruptHandler, is visible such that the user* can connect it to the interrupt source. Note that this interrupt handler* does not provide interrupt context save and restore processing, the user* must perform this processing.** The driver services interrupts and passes timeouts to the upper layer* software through callback functions. The upper layer software must register* its callback functions during initialization. The driver requires callback* functions for timers.** @note* The default settings for the timers are:*   - Interrupt generation disabled*   - Count up mode*   - Compare mode*   - Hold counter (will not reload the timer)*   - External compare output disabled*   - External capture input disabled*   - Pulse width modulation disabled*   - Timer disabled, waits for Start function to be called* <br><br>* A timer counter device may contain multiple timer counters. The symbol* XTC_DEVICE_TIMER_COUNT defines the number of timer counters in the device.* The device currently contains 2 timer counters.* <br><br>* This driver is intended to be RTOS and processor independent. It works with* physical addresses only. Any needs for dynamic memory management, threads* or thread mutual exclusion, virtual memory, or cache control must be* satisfied by the layer above this driver.** <pre>* MODIFICATION HISTORY:** Ver   Who  Date     Changes* ----- ---- -------- -----------------------------------------------* 1.00a ecm  08/16/01 First release* 1.00b jhl  02/21/02 Repartitioned the driver for smaller files* 1.10b mta  03/21/07 Updated to new coding style.* </pre>*******************************************************************************/#ifndef XTMRCTR_H		/* prevent circular inclusions */#define XTMRCTR_H		/* by using protection macros */#ifdef __cplusplusextern "C" {#endif/***************************** Include Files *********************************/#include "xbasic_types.h"#include "xstatus.h"#include "xtmrctr_l.h"/************************** Constant Definitions *****************************//** * @name Configuration options * These options are used in XTmrCtr_SetOptions() and XTmrCtr_GetOptions() * @{ *//** * Used to configure the timer counter device. * <pre> * XTC_ENABLE_ALL_OPTION	Enables all timer counters at once. * XTC_DOWN_COUNT_OPTION	Configures the timer counter to count down from *				start value, the default is to count up. * XTC_CAPTURE_MODE_OPTION	Configures the timer to capture the timer *				counter value when the external capture line is *				asserted. The default mode is compare mode. * XTC_INT_MODE_OPTION		Enables the timer counter interrupt output. * XTC_AUTO_RELOAD_OPTION	In compare mode, configures the timer counter to *				reload from the compare value. The default mode *				causes the timer counter to hold when the *				compare value is hit. *				In capture mode, configures the timer counter to *				not hold the previous capture value if a new *				event occurs. The default mode cause the timer *				counter to hold the capture value until *				recognized. * XTC_EXT_COMPARE_OPTION	Enables the external compare output signal. * </pre> */#define XTC_ENABLE_ALL_OPTION		0x00000040UL#define XTC_DOWN_COUNT_OPTION		0x00000020UL#define XTC_CAPTURE_MODE_OPTION		0x00000010UL#define XTC_INT_MODE_OPTION		0x00000008UL#define XTC_AUTO_RELOAD_OPTION		0x00000004UL#define XTC_EXT_COMPARE_OPTION		0x00000002UL/*@}*//**************************** Type Definitions *******************************//** * This typedef contains configuration information for the device. */typedef struct {	u16 DeviceId;	/**< Unique ID  of device */	u32 BaseAddress;/**< Register base address */} XTmrCtr_Config;/** * Signature for the callback function. * * @param	CallBackRef is a callback reference passed in by the upper layer *		when setting the callback functions, and passed back to the *		upper layer when the callback is invoked. Its type is *		 unimportant to the driver, so it is a void pointer. * @param 	TmrCtrNumber is the number of the timer/counter within the *		device. The device typically contains at least two *		timer/counters. The timer number is a zero based number with a *		range of 0 to (XTC_DEVICE_TIMER_COUNT - 1). */typedef void (*XTmrCtr_Handler) (void *CallBackRef, u8 TmrCtrNumber);/** * Timer/Counter statistics */typedef struct {	u32 Interrupts;	 /**< The number of interrupts that have occurred */} XTmrCtrStats;/** * The XTmrCtr driver instance data. The user is required to allocate a * variable of this type for every timer/counter device in the system. A * pointer to a variable of this type is then passed to the driver API * functions. */typedef struct {	XTmrCtrStats Stats;	 /**< Component Statistics */	u32 BaseAddress;	 /**< Base address of registers */	u32 IsReady;		 /**< Device is initialized and ready */	XTmrCtr_Handler Handler; /**< Callback function */	void *CallBackRef;	 /**< Callback reference for handler */} XTmrCtr;/***************** Macros (Inline Functions) Definitions *********************//************************** Function Prototypes ******************************//* * Required functions, in file xtmrctr.c */int XTmrCtr_Initialize(XTmrCtr * InstancePtr, u16 DeviceId);void XTmrCtr_Start(XTmrCtr * InstancePtr, u8 TmrCtrNumber);void XTmrCtr_Stop(XTmrCtr * InstancePtr, u8 TmrCtrNumber);u32 XTmrCtr_GetValue(XTmrCtr * InstancePtr, u8 TmrCtrNumber);void XTmrCtr_SetResetValue(XTmrCtr * InstancePtr, u8 TmrCtrNumber,			   u32 ResetValue);u32 XTmrCtr_GetCaptureValue(XTmrCtr * InstancePtr, u8 TmrCtrNumber);int XTmrCtr_IsExpired(XTmrCtr * InstancePtr, u8 TmrCtrNumber);void XTmrCtr_Reset(XTmrCtr * InstancePtr, u8 TmrCtrNumber);XTmrCtr_Config *XTmrCtr_LookupConfig(u16 DeviceId);/* * Functions for options, in file xtmrctr_options.c */void XTmrCtr_SetOptions(XTmrCtr * InstancePtr, u8 TmrCtrNumber, u32 Options);u32 XTmrCtr_GetOptions(XTmrCtr * InstancePtr, u8 TmrCtrNumber);/* * Functions for statistics, in file xtmrctr_stats.c */void XTmrCtr_GetStats(XTmrCtr * InstancePtr, XTmrCtrStats * StatsPtr);void XTmrCtr_ClearStats(XTmrCtr * InstancePtr);/* * Functions for self-test, in file xtmrctr_selftest.c */int XTmrCtr_SelfTest(XTmrCtr * InstancePtr, u8 TmrCtrNumber);/* * Functions for interrupts, in file xtmrctr_intr.c */void XTmrCtr_SetHandler(XTmrCtr * InstancePtr, XTmrCtr_Handler FuncPtr,			void *CallBackRef);void XTmrCtr_InterruptHandler(void *InstancePtr);#ifdef __cplusplus}#endif#endif /* end of protection macro */

⌨️ 快捷键说明

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