📄 rtcperiodicseconds.c
字号:
/* system service include file */
#include <services/services.h>
/* real time clock service include file */
#include <services/rtc/adi_rtc.h>
/* system time include file */
#include <time.h>
/* initialization 'sizings' */
#include "adi_ssl_init.h"
/**************************************************************
Below are masks that are OR's into the final result, to
determine what specific things may have failed.
***************************************************************/
#define ADI_TEST_SUCCESSFUL 0
#define ADI_TEST_SSL_INIT_FAILED 0x01
#define ADI_TEST_SET_DATETIME_FAILED 0x04
#define ADI_TEST_GET_DATETIME_FAILED 0x08
#define ADI_TEST_DATETIME_WRONG 0x10
#define ADI_TEST_SSL_TERMINATE_FAILED 0x40
volatile static u32 SecondsCompleteFlag;
/* Callback function */
static void RTCCallback(void *ClientHandle, u32 Event, void *pArg)
{
switch ( (u32)Event ) {
/* one second periodic interrupt */
case ADI_RTC_EVENT_SECONDS:
{
SecondsCompleteFlag = 1;
adi_rtc_RemoveCallback(ADI_RTC_EVENT_SECONDS );
break;
}
/* one minute periodic interrupt */
case ADI_RTC_EVENT_MINUTES :
break;
/* hourly periodic interrupt */
case ADI_RTC_EVENT_HOURS:
break;
/* daily periodic interrupt */
case ADI_RTC_EVENT_DAYS:
break;
/* stopwatch countdown timeout event */
case ADI_RTC_EVENT_STOPWATCH:
break;
/* time of day, daily alarm */
case ADI_RTC_EVENT_EACH_DAY_ALARM:
break;
/* day & time once only alarm */
case ADI_RTC_EVENT_ONCE_ALARM:
break;
/* pending register writes complete */
case ADI_RTC_EVENT_WRITES_COMPLETE:
break;
default:
break;
}
return;
}
/* **************************************************************
*
* Main Function of the Application
*
* **************************************************************/
main()
{
/* variables for storing result codes */
u32 TmpResult, FinalResult;
/* argument for saving critical region data */
void *critical_region_arg = 0;
/* Start by assuming success. */
FinalResult = ADI_TEST_SUCCESSFUL;
/* Initialize the system services. */
/* Use temporary result code to check whether system services */
/* were successfully initialized - see 'ssl_init.c' */
if(( TmpResult = adi_ssl_Init() ) != 0 )
{
/* Add a specific error code to the final result */
FinalResult |= ADI_TEST_SSL_INIT_FAILED;
}
if( FinalResult == 0 )
{
/* zero this flag */
SecondsCompleteFlag = 0;
/* install a callback, that will set the flag */
adi_rtc_InstallCallback(ADI_RTC_EVENT_SECONDS, (void*)NULL, NULL, RTCCallback, (void*)NULL );
/* and set a breakpoint in the callback */
while( SecondsCompleteFlag == 0 );
}
/* Terminate the system services */
if(( TmpResult = adi_ssl_Terminate()) != 0 )
{
/* Add a specific error code to the final result */
FinalResult |= ADI_TEST_SSL_TERMINATE_FAILED;
}
/* Here, examine the value of "FinalResult" and see the definitions at */
/* the beginning of this file which describe result */
while( 1 )
{
TmpResult = FinalResult ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -