sysmon
Xilinx SDK Drivers API Documentation
xsysmon_intr_example.c File Reference

Overview

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.

Note

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...
 

Function Documentation

◆ main()

int main ( void  )

Main function that invokes the Interrupt example.

Parameters
None.
Returns
  • XST_SUCCESS if the example has completed successfully.
  • XST_FAILURE if the example has failed.
Note
None.

References SysMonIntrExample().

◆ 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:

  • Initiate the System Monitor/ADC device driver instance
  • Run self-test on the device
  • Reset the device
  • Set up alarms for on-chip temperature and VCCAUX
  • Set up sequence registers to continuously monitor on-chip temperature and VCCAUX
  • Setup interrupt system
  • Enable interrupts
  • Set up configuration registers to start the sequence
  • Wait until temperature alarm interrupt or VCCAUX alarm interrupt occurs
Parameters
IntcInstancePtris a pointer to the Interrupt Controller driver Instance.
SysMonInstPtris a pointer to the XSysMon driver Instance.
SysMonDeviceIdis the XPAR_<SYSMON_ADC_instance>_DEVICE_ID value from xparameters.h.
SysMonIntrIdis XPAR_<INTC_instance>_<SYSMON_ADC_instance>_VEC_ID value from xparameters.h
Tempis an output parameter, it is a pointer through which the current temperature value is returned to the main function.
Returns
  • XST_SUCCESS if the example has completed successfully.
  • XST_FAILURE if the example has failed.
Note
This function may never return if no interrupt occurs.

Referenced by main().