![]() |
sysmon
Xilinx SDK Drivers API Documentation
|
This file contains a design example using the driver functions of the System Monitor/ADC driver.
This example here shows the usage of the driver/device in interrupt mode to handle on-chip temperature and voltage alarm interrupts.
This code assumes that no Operating System is being used.
The values of the on-chip temperature and the on-chip Vccaux voltage are read from the device and then the alarm thresholds are set in such a manner that the alarms occur.
MODIFICATION HISTORY:
Ver Who Date Changes
1.00a xd/sv 05/22/07 First release 2.00a sv 06/22/08 Modified the function description of the interrupt handler 2.00a sdm 09/26/08 Added code to return temperature value to the main function. TestappPeripheral prints the temperature 4.00a ktn 10/22/09 Updated the example to use HAL processor APIs/macros. Updated the example to use macros that have been renamed to remove _m from the name of the macro. 5.03a bss 04/25/13 Modified SysMonIntrExample function to set Sequencer Mode as Safe mode instead of Single channel mode before configuring Sequencer registers. CR #703729 7.2 adk 29/02/16 Updated example to support Zynq and ZynqMP. 7.3 ms 01/23/17 Added xil_printf statement in main function to ensure that "Successfully ran" and "Failed" strings are available in all examples. This is a fix for CR-965028.
Functions | |
int | SysMonIntrExample (INTC *IntcInstancePtr, XSysMon *SysMonInstPtr, u16 SysMonDeviceId, u16 SysMonIntrId, int *Temp) |
This function runs a test on the System Monitor/ADC device using the driver APIs. More... | |
int | main (void) |
Main function that invokes the Interrupt example. More... | |
int main | ( | void | ) |
Main function that invokes the Interrupt example.
None. |
References SysMonIntrExample().
int SysMonIntrExample | ( | INTC * | IntcInstancePtr, |
XSysMon * | SysMonInstPtr, | ||
u16 | SysMonDeviceId, | ||
u16 | SysMonIntrId, | ||
int * | Temp | ||
) |
This function runs a test on the System Monitor/ADC device using the driver APIs.
The function does the following tasks:
IntcInstancePtr | is a pointer to the Interrupt Controller driver Instance. |
SysMonInstPtr | is a pointer to the XSysMon driver Instance. |
SysMonDeviceId | is the XPAR_<SYSMON_ADC_instance>_DEVICE_ID value from xparameters.h. |
SysMonIntrId | is XPAR_<INTC_instance>_<SYSMON_ADC_instance>_VEC_ID value from xparameters.h |
Temp | is an output parameter, it is a pointer through which the current temperature value is returned to the main function. |
References XSysMon_Config::BaseAddress, XSM_ATR_TEMP_LOWER, XSM_ATR_TEMP_UPPER, XSM_ATR_VCCAUX_LOWER, XSM_ATR_VCCAUX_UPPER, XSM_AVG_16_SAMPLES, XSM_CFR1_ALM_TEMP_MASK, XSM_CFR1_ALM_VCCAUX_MASK, XSM_CH_TEMP, XSM_CH_VCCAUX, XSM_IPIXR_TEMP_MASK, XSM_IPIXR_VCCAUX_MASK, XSM_SEQ_CH_AUX00, XSM_SEQ_CH_AUX15, XSM_SEQ_CH_TEMP, XSM_SEQ_CH_VCCAUX, XSM_SEQ_MODE_CONTINPASS, XSM_SEQ_MODE_SAFE, XSM_SR_EOS_MASK, XSysMon_CfgInitialize(), XSysMon_GetAdcData(), XSysMon_GetStatus(), XSysMon_IntrClear(), XSysMon_IntrEnable(), XSysMon_IntrGetStatus(), XSysMon_IntrGlobalDisable(), XSysMon_IntrGlobalEnable(), XSysMon_LookupConfig(), XSysMon_RawToTemperature, XSysMon_SelfTest(), XSysMon_SetAdcClkDivisor(), XSysMon_SetAlarmEnables(), XSysMon_SetAlarmThreshold(), XSysMon_SetAvg(), XSysMon_SetSeqAcqTime(), XSysMon_SetSeqAvgEnables(), XSysMon_SetSeqChEnables(), XSysMon_SetSeqInputMode(), and XSysMon_SetSequencerMode().
Referenced by main().