rtcpsu
Vitis Drivers API Documentation
xrtcpsu_alarm_interrupt_example.c File Reference

Overview

This file contains an alarm example using the XRtcPsu driver in interrupt mode.

It sets alarm for a specified time from the current time.

Note
The example contains an infinite loop such that if interrupts are not working it may hang.

MODIFICATION HISTORY:

Ver   Who    Date     Changes


1.00 kvn 05/12/15 First Release ms 04/10/17 Modified filename tag to include the file in doxygen examples. 1.12 sne 04/25/22 Added volatile keyword for IsAlarmGen variable. 1.13 ht 06/22/23 Added support for system device-tree flow.

Functions

int RtcPsuAlarmIntrExample (XScuGic *IntcInstPtr, XRtcPsu *RtcInstPtr, u16 DeviceId, u16 RtcIntrId)
 This function does a minimal test on the Rtc device and driver as a design example. More...
 
void Handler (void *CallBackRef, u32 Event)
 This function is the handler which performs processing to handle interrupt events from the device. More...
 
int main (void)
 Main function to call the RTC Alarm interrupt example. More...
 

Function Documentation

void Handler ( void *  CallBackRef,
u32  Event 
)

This function is the handler which performs processing to handle interrupt events from the device.

It is called from an interrupt context. so the amount of processing should be minimal.

This handler provides an example of how to handle interrupt data for the device and is application specific.

Parameters
CallBackRefcontains a callback reference from the driver, in this case it is the instance pointer for the XRtcPsu driver.
Eventcontains the specific kind of event that has occurred.
Returns
None.
Note
None.

References XRTCPSU_EVENT_ALARM_GEN.

Referenced by RtcPsuAlarmIntrExample(), RtcPsuPeriodicAlarmIntrExample(), and RtcPsuSecondsIntrExample().

int main ( void  )

Main function to call the RTC Alarm interrupt example.

Returns
XST_SUCCESS if successful, XST_FAILURE if unsuccessful
Note
None

References RtcPsuAlarmIntrExample().

int RtcPsuAlarmIntrExample ( XScuGic *  IntcInstPtr,
XRtcPsu RtcInstPtr,
u16  DeviceId,
u16  RtcIntrId 
)

This function does a minimal test on the Rtc device and driver as a design example.

The purpose of this function is to illustrate how to use alarm feature in the XRtcPsu driver.

This function sets alarm for a specified time from the current time.

Parameters
IntcInstPtris a pointer to the instance of the ScuGic driver.
RtcInstPtris a pointer to the instance of the RTC driver which is going to be connected to the interrupt controller.
DeviceIdis the device Id of the RTC device and is typically XPAR_<RTCPSU_instance>_DEVICE_ID value from xparameters.h.
RtcIntrIdis the interrupt Id and is typically XPAR_<RTCPSU_instance>_INTR value from xparameters.h.
Returns
XST_SUCCESS if successful, otherwise XST_FAILURE.
Note

This function contains an infinite loop such that if interrupts are not working it may never return.

References XRtcPsu_Config::BaseAddr, XRtcPsu_DT::Day, Handler(), XRtcPsu_DT::Hour, XRtcPsu_DT::Min, XRtcPsu_DT::Month, XRtcPsu_DT::Sec, XRtcPsu_DT::WeekDay, XRtcPsu_CfgInitialize(), XRtcPsu_ClearInterruptMask(), XRtcPsu_GetCurrentTime(), XRtcPsu_InterruptHandler(), XRtcPsu_LookupConfig(), XRtcPsu_SecToDateTime(), XRtcPsu_SelfTest(), XRtcPsu_SetAlarm(), XRtcPsu_SetHandler(), XRtcPsu_SetInterruptMask(), and XRtcPsu_DT::Year.

Referenced by main().