#include <stdio.h>
#include "platform.h"
#include "xgpio.h"
#include "xparameters.h"
#include "microblaze_sleep.h"
void print(char *str);
//declare an XGpio and XGpio instance
XGpio GPIO_0;
XGpio_Config GPIO_0_conf;
XGpio GPIO_1;
XGpio_Config GPIO_1_conf;
int main()
{
// GPIO 0
GPIO_0_conf.BaseAddress = XPAR_AXI_GPIO_0_BASEADDR;
GPIO_0_conf.DeviceId = XPAR_AXI_GPIO_0_DEVICE_ID;
GPIO_0_conf.InterruptPresent = XPAR_GPIO_0_INTERRUPT_PRESENT;
GPIO_0_conf.IsDual = XPAR_GPIO_0_IS_DUAL;
//Initialize the XGpio instance
XGpio_CfgInitialize(&GPIO_0, &GPIO_0_conf, GPIO_0_conf.BaseAddress);
XGpio_SetDataDirection(&GPIO_0, 1, 0xff);
XGpio_SetDataDirection(&GPIO_0, 2, 0x01);
// GPIO 1
GPIO_1_conf.BaseAddress = XPAR_AXI_GPIO_1_BASEADDR;
GPIO_1_conf.DeviceId = XPAR_AXI_GPIO_1_DEVICE_ID;
GPIO_1_conf.InterruptPresent = XPAR_GPIO_1_INTERRUPT_PRESENT;
GPIO_1_conf.IsDual = XPAR_GPIO_1_IS_DUAL;
//Initialize the XGpio instance
XGpio_CfgInitialize(&GPIO_1, &GPIO_1_conf, GPIO_1_conf.BaseAddress);
XGpio_SetDataDirection(&GPIO_1, 1, 0x00);
XGpio_SetDataDirection(&GPIO_1, 2, 0x01);
init_platform();
print("Hello World\n\r");
u32 input;
u32 read;
u32 control;
// check = 0x3;
while(1){
//Read the switches values
// input = XGpio_DiscreteRead(&GPIO_0, 1);
// read = (input & 0xff);
xil_printf("outjustprint\n" );
// xil_printf("out = %x\n", XGpio_DiscreteRead(&GPIO_0, 1) );
if(( XGpio_DiscreteRead(&GPIO_0, 2) & 0x01))
{
xil_printf("read = %x\n", XGpio_DiscreteRead(&GPIO_0, 1));
}
// if(( XGpio_DiscreteRead(&GPIO_1, 2) & 0x01) == 0)
XGpio_DiscreteWrite(&GPIO_1, 1, 0x26);
// XGpio_DiscreteWrite(&GPIO_1, 1, 0x000000ee);
}
return 0;
}