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

XGpio_Config *gpio_config;
XGpio gpio;

void gpio_init(){

	gpio_config = XGpio_LookupConfig(XPAR_AXI_GPIO_0_DEVICE_ID);
	int status = XGpio_CfgInitialize(&gpio,gpio_config, gpio_config->BaseAddress);
    if(status == XST_SUCCESS)
    	xil_printf("GPIO INIT SUCCESSFUL\n");
    else
    	xil_printf("GPIO INIT FAILED\n");

}


int main()
{
	u32 dataRead = 0;
    init_platform();
    gpio_init();

    XGpio_SetDataDirection(&gpio, 1, 0xffff); ///channel 1 as Input
    XGpio_SetDataDirection(&gpio, 2, 0x0000); // Channel 2 as Output

    while(1){
    	dataRead = XGpio_DiscreteRead(&gpio, 1);
    	XGpio_DiscreteWrite(&gpio, 2, dataRead);
    	sleep(1);

    }

    cleanup_platform();
    return 0;
}