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

XScuTimer_Config *tmr_config;
XScuTimer tmr;

void tmr_init(){
	tmr_config = XScuTimer_LookupConfig(XPAR_PS7_SCUTIMER_0_DEVICE_ID);
	s32 status = XScuTimer_CfgInitialize(&tmr, tmr_config, XPAR_PS7_SCUTIMER_0_BASEADDR);

	if(status == XST_SUCCESS)
		xil_printf("TMR INIT SUCCESSFUL\n");
	else
		xil_printf("TMR INIT FAILED\n");

	status = XScuTimer_SelfTest(&tmr);

	if(status == XST_SUCCESS)
		xil_printf("TMR SELFTEST SUCCESSFUL\n");
	else
		xil_printf("TMR SELFTEST FAILED\n");


}

int main()
{
    u32 temp = 0;
	u32 tmrCount = 333333333*5;
	u32 counterValue = 0;
    init_platform();
    tmr_init();

    XScuTimer_Stop(&tmr);
    XScuTimer_DisableAutoReload(&tmr); ///working in NORMAL Mode
    XScuTimer_SetPrescaler(&tmr, 1); // new_freq = orig_freq / 2^prescale_value
    XScuTimer_LoadTimer(&tmr, tmrCount);
    XScuTimer_Start(&tmr);




    while(!XScuTimer_IsExpired(&tmr)){
    	usleep(500000); ///500 mSec
    	temp++;
      }


    xil_printf("TMR EXPIRED : Delay of 10 Sec achieved\n");
    xil_printf("TEMP VALUE : %0d\n", temp);




    cleanup_platform();
    return 0;
}