📄 xadcps.h
字号:
#define XADCPS_SEQ_MODE_CONTINPASS 2 /**< Continuous Cycling Sequencer */#define XADCPS_SEQ_MODE_SINGCHAN 3 /**< Single channel -No Sequencing */#define XADCPS_SEQ_MODE_SIMUL_SAMPLING 4 /**< Simultaneous sampling */#define XADCPS_SEQ_MODE_INDEPENDENT 8 /**< Independent mode *//*@}*//** * @name Power Down Modes * @{ */#define XADCPS_PD_MODE_NONE 0 /**< No Power Down */#define XADCPS_PD_MODE_ADCB 1 /**< Power Down ADC B */#define XADCPS_PD_MODE_XADC 2 /**< Power Down ADC A and ADC B *//*@}*//**************************** Type Definitions ******************************//** * This typedef contains configuration information for the XADC/ADC * device. */typedef struct { u16 DeviceId; /**< Unique ID of device */ u32 BaseAddress; /**< Device base address */} XAdcPs_Config;/** * The driver's instance data. The user is required to allocate a variable * of this type for every XADC/ADC device in the system. A pointer to * a variable of this type is then passed to the driver API functions. */typedef struct { XAdcPs_Config Config; /**< XAdcPs_Config of current device */ u32 IsReady; /**< Device is initialized and ready */} XAdcPs;/***************** Macros (Inline Functions) Definitions ********************//****************************************************************************//**** This macro checks if the XADC device is in Event Sampling mode.** @param InstancePtr is a pointer to the XAdcPs instance.** @return* - TRUE if the device is in Event Sampling Mode.* - FALSE if the device is in Continuous Sampling Mode.** @note C-Style signature:* int XAdcPs_IsEventSamplingMode(XAdcPs *InstancePtr);******************************************************************************/#define XAdcPs_IsEventSamplingModeSet(InstancePtr) \ (((XAdcPs_ReadInternalReg(InstancePtr, \ XADCPS_CFR0_OFFSET) & XADCPS_CFR0_EC_MASK) ? \ TRUE : FALSE))/****************************************************************************//**** This macro checks if the XADC device is in External Mux mode.** @param InstancePtr is a pointer to the XAdcPs instance.** @return* - TRUE if the device is in External Mux Mode.* - FALSE if the device is NOT in External Mux Mode.** @note C-Style signature:* int XAdcPs_IsExternalMuxMode(XAdcPs *InstancePtr);******************************************************************************/#define XAdcPs_IsExternalMuxModeSet(InstancePtr) \ (((XAdcPs_ReadInternalReg(InstancePtr, \ XADCPS_CFR0_OFFSET) & XADCPS_CFR0_MUX_MASK) ? \ TRUE : FALSE))/****************************************************************************//**** This macro converts XADC Raw Data to Temperature(centigrades).** @param AdcData is the Raw ADC Data from XADC.** @return The Temperature in centigrades.** @note C-Style signature:* float XAdcPs_RawToTemperature(u32 AdcData);******************************************************************************/#define XAdcPs_RawToTemperature(AdcData) \ ((((float)(AdcData)/65536.0f)/0.00198421639f ) - 273.15f)/****************************************************************************//**** This macro converts XADC/ADC Raw Data to Voltage(volts).** @param AdcData is the XADC/ADC Raw Data.** @return The Voltage in volts.** @note C-Style signature:* float XAdcPs_RawToVoltage(u32 AdcData);******************************************************************************/#define XAdcPs_RawToVoltage(AdcData) \ ((((float)(AdcData))* (3.0f))/65536.0f)/****************************************************************************//**** This macro converts Temperature in centigrades to XADC/ADC Raw Data.** @param Temperature is the Temperature in centigrades to be* converted to XADC/ADC Raw Data.** @return The XADC/ADC Raw Data.** @note C-Style signature:* int XAdcPs_TemperatureToRaw(float Temperature);******************************************************************************/#define XAdcPs_TemperatureToRaw(Temperature) \ ((int)(((Temperature) + 273.15f)*65536.0f*0.00198421639f))/****************************************************************************//**** This macro converts Voltage in Volts to XADC/ADC Raw Data.** @param Voltage is the Voltage in volts to be converted to* XADC/ADC Raw Data.** @return The XADC/ADC Raw Data.** @note C-Style signature:* int XAdcPs_VoltageToRaw(float Voltage);******************************************************************************/#define XAdcPs_VoltageToRaw(Voltage) \ ((int)((Voltage)*65536.0f/3.0f))/****************************************************************************//**** This macro is used for writing to the XADC Registers using the* command FIFO.** @param InstancePtr is a pointer to the XAdcPs instance.** @return None.** @note C-Style signature:* void XAdcPs_WriteFifo(XAdcPs *InstancePtr, u32 Data);******************************************************************************/#define XAdcPs_WriteFifo(InstancePtr, Data) \ XAdcPs_WriteReg((InstancePtr)->Config.BaseAddress, \ XADCPS_CMDFIFO_OFFSET, Data);/****************************************************************************//**** This macro is used for reading from the XADC Registers using the* data FIFO.** @param InstancePtr is a pointer to the XAdcPs instance.** @return Data read from the FIFO** @note C-Style signature:* u32 XAdcPs_ReadFifo(XAdcPs *InstancePtr);******************************************************************************/#define XAdcPs_ReadFifo(InstancePtr) \ XAdcPs_ReadReg((InstancePtr)->Config.BaseAddress, \ XADCPS_RDFIFO_OFFSET);/************************** Function Prototypes *****************************//** * Functions in xadcps_sinit.c */XAdcPs_Config *XAdcPs_LookupConfig(u16 DeviceId);/** * Functions in xadcps.c */int XAdcPs_CfgInitialize(XAdcPs *InstancePtr, XAdcPs_Config *ConfigPtr, u32 EffectiveAddr);u32 XAdcPs_GetStatus(XAdcPs *InstancePtr);u32 XAdcPs_GetAlarmOutputStatus(XAdcPs *InstancePtr);void XAdcPs_StartAdcConversion(XAdcPs *InstancePtr);void XAdcPs_Reset(XAdcPs *InstancePtr);u16 XAdcPs_GetAdcData(XAdcPs *InstancePtr, u8 Channel);u16 XAdcPs_GetCalibCoefficient(XAdcPs *InstancePtr, u8 CoeffType);u16 XAdcPs_GetMinMaxMeasurement(XAdcPs *InstancePtr, u8 MeasurementType);void XAdcPs_SetAvg(XAdcPs *InstancePtr, u8 Average);u8 XAdcPs_GetAvg(XAdcPs *InstancePtr);int XAdcPs_SetSingleChParams(XAdcPs *InstancePtr, u8 Channel, int IncreaseAcqCycles, int IsEventMode, int IsDifferentialMode);void XAdcPs_SetAlarmEnables(XAdcPs *InstancePtr, u16 AlmEnableMask);u16 XAdcPs_GetAlarmEnables(XAdcPs *InstancePtr);void XAdcPs_SetCalibEnables(XAdcPs *InstancePtr, u16 Calibration);u16 XAdcPs_GetCalibEnables(XAdcPs *InstancePtr);void XAdcPs_SetSequencerMode(XAdcPs *InstancePtr, u8 SequencerMode);u8 XAdcPs_GetSequencerMode(XAdcPs *InstancePtr);void XAdcPs_SetAdcClkDivisor(XAdcPs *InstancePtr, u8 Divisor);u8 XAdcPs_GetAdcClkDivisor(XAdcPs *InstancePtr);int XAdcPs_SetSeqChEnables(XAdcPs *InstancePtr, u32 ChEnableMask);u32 XAdcPs_GetSeqChEnables(XAdcPs *InstancePtr);int XAdcPs_SetSeqAvgEnables(XAdcPs *InstancePtr, u32 AvgEnableChMask);u32 XAdcPs_GetSeqAvgEnables(XAdcPs *InstancePtr);int XAdcPs_SetSeqInputMode(XAdcPs *InstancePtr, u32 InputModeChMask);u32 XAdcPs_GetSeqInputMode(XAdcPs *InstancePtr);int XAdcPs_SetSeqAcqTime(XAdcPs *InstancePtr, u32 AcqCyclesChMask);u32 XAdcPs_GetSeqAcqTime(XAdcPs *InstancePtr);void XAdcPs_SetAlarmThreshold(XAdcPs *InstancePtr, u8 AlarmThrReg, u16 Value);u16 XAdcPs_GetAlarmThreshold(XAdcPs *InstancePtr, u8 AlarmThrReg);void XAdcPs_EnableUserOverTemp(XAdcPs *InstancePtr);void XAdcPs_DisableUserOverTemp(XAdcPs *InstancePtr);/** * Functions in xadcps_selftest.c */int XAdcPs_SelfTest(XAdcPs *InstancePtr);/** * Functions in xadcps_intr.c */void XAdcPs_IntrEnable(XAdcPs *InstancePtr, u32 Mask);void XAdcPs_IntrDisable(XAdcPs *InstancePtr, u32 Mask);u32 XAdcPs_IntrGetEnabled(XAdcPs *InstancePtr);u32 XAdcPs_IntrGetStatus(XAdcPs *InstancePtr);void XAdcPs_IntrClear(XAdcPs *InstancePtr, u32 Mask);#ifdef __cplusplus}#endif#endif /* End of protection macro. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -