#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xparameters.h"
#include "xtmrctr.h"


XTmrCtr_Config *tmr_config;
XTmrCtr tmr;

void tmr_init(){

	int status;

	tmr_config = XTmrCtr_LookupConfig(XPAR_AXI_TIMER_0_DEVICE_ID);
	XTmrCtr_CfgInitialize(&tmr, tmr_config, tmr_config->BaseAddress);
	status = XTmrCtr_SelfTest(&tmr,0);

	if(status == XST_SUCCESS)
		xil_printf("TMR init Successful\n");
	else
		xil_printf("TMR init Failed\n");

}
int main()
{
	u32 option = 0;
	u32 count =0;

    init_platform();
    tmr_init();
    option = XTmrCtr_GetOptions(&tmr, 0);
    option = option | XTC_DOWN_COUNT_OPTION;
    XTmrCtr_SetOptions(&tmr, 0, option);
    ///1/100_000_000*100_000_000 * 5
    u32 countValue = 100000000*5;
    XTmrCtr_SetResetValue(&tmr,0,countValue);
    XTmrCtr_Stop(&tmr, 0);
    XTmrCtr_Start(&tmr,0);
    while(!XTmrCtr_IsExpired(&tmr, 0))
    {
     usleep(200000);
     count  = XTmrCtr_GetValue(&tmr, 0);
     xil_printf("Value of Counter : %0d\n",count);
    }

    xil_printf("Delay of 5 Sec\n");


    cleanup_platform();
    return 0;
}