Method 1:
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xtmrctr.h"
#include "xparameters.h"
XTmrCtr_Config *tmr_config;
XTmrCtr tmr;
void tmr_init(){
tmr_config = XTmrCtr_LookupConfig(XPAR_AXI_TIMER_0_DEVICE_ID);
XTmrCtr_CfgInitialize(&tmr, tmr_config, tmr_config->BaseAddress);
int status = XTmrCtr_SelfTest(&tmr,0);
if(status == XST_SUCCESS)
xil_printf("SELF TEST SUCCESSFUL\n");
else
xil_printf("SELF TEST FAILED\n");
}
int main()
{
init_platform();
tmr_init();
XTmrCtr_Stop(&tmr, 0);
XTmrCtr_SetResetValue(&tmr, 0, 500000000);
u32 option = XTmrCtr_GetOptions(&tmr, 0);
XTmrCtr_SetOptions(&tmr, 0, option | XTC_DOWN_COUNT_OPTION | XTC_AUTO_RELOAD_OPTION);
XTmrCtr_Reset(&tmr, 0);
while(1){
XTmrCtr_Start(&tmr, 0);
while(!XTmrCtr_IsExpired(&tmr, 0));
xil_printf("Delay of 5 Sec\n");
}
cleanup_platform();
return 0;
}
Method 2:
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xtmrctr.h"
#include "xparameters.h"
XTmrCtr_Config *tmr_config;
XTmrCtr tmr;
void tmr_init(){
tmr_config = XTmrCtr_LookupConfig(XPAR_AXI_TIMER_0_DEVICE_ID);
XTmrCtr_CfgInitialize(&tmr, tmr_config, tmr_config->BaseAddress);
int status = XTmrCtr_SelfTest(&tmr,0);
if(status == XST_SUCCESS)
xil_printf("SELF TEST SUCCESSFUL\n");
else
xil_printf("SELF TEST FAILED\n");
}
int main()
{
init_platform();
tmr_init();
XTmrCtr_Stop(&tmr, 0);
XTmrCtr_SetResetValue(&tmr, 0, 500000000);
u32 option = XTmrCtr_GetOptions(&tmr, 0);
XTmrCtr_SetOptions(&tmr, 0, option | XTC_DOWN_COUNT_OPTION );
XTmrCtr_Reset(&tmr, 0);
while(1){
XTmrCtr_Start(&tmr, 0);
while(!XTmrCtr_IsExpired(&tmr, 0));
xil_printf("Delay of 5 Sec\n");
XTmrCtr_Reset(&tmr, 0);
}
cleanup_platform();
return 0;
}