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;
}