/************************************************************/ /* GPIO SETUP AND USAGE */ /************************************************************/ XGpioPs gpio; void gpio_setup() { XGpioPs_Config config; config.DeviceId = 4; // chosen by fair dice throw config.BaseAddr = XPS_GPIO_BASEADDR; s32 returncode = XGpioPs_CfgInitialize(&gpio, &config, XPS_GPIO_BASEADDR); //printf("Configured XGPIO"); XGpioPs_SetDirection(&gpio, 0, (1 << 7)); XGpioPs_SetOutputEnable(&gpio, 0, (1 << 7)); XGpioPs_WritePin(&gpio, 7, 1); //printf("Blinking is initialized"); XGpioPs_WritePin(&gpio, 7, 0); //printf("Value written once"); } void gpio_write_pin(uint32_t pin, uint32_t data) { XGpioPs_WritePin(&gpio, pin, data); } uint32_t gpio_read_pin(uint32_t pin) { return XGpioPs_ReadPin(&gpio, pin); } void gpio_toggle_pin(uint32_t pin) { static int pinvalue = 1; pinvalue = pinvalue ^ 1; XGpioPs_WritePin(&gpio, pin, pinvalue); }