通过AXI 使用PS端的按键来控制PL端LED亮灭
#include "stdio.h"
#include "xparameters.h"
#include "xgpio.h"
#include "xgpiops.h"
#define LED_DEVICE_ID XPAR_AXI_GPIO_0_DEVICE_ID //PL端LED(GPIO) 设备ID
#define GPIOPS_ID XPAR_XGPIOPS_0_DEVICE_ID //PS端 GPIO器件 ID
#define LED_CHANNEL 1
#define MIO_KEY0 12 //PS_KEY0 连接到 MIO12
XGpio Gpio_led ;
int main()
{
printf("ps key ctrl pl led test\r\n");
XGpioPs gpiops_inst; //PS端 GPIO 驱动实例
XGpioPs_Config *gpiops_cfg_ptr; //PS端 GPIO 配置信息
//根据器件ID查找配置信息
gpiops_cfg_ptr = XGpioPs_LookupConfig(GPIOPS_ID);
//初始化器件驱动
XGpioPs_CfgInitialize(&gpiops_inst, gpiops_cfg_ptr, gpiops_cfg_ptr->BaseAddr);
//设置KEY为输入
XGpioPs_SetDirectionPin(&gpiops_inst, MIO_KEY0, 0);
//LED:AXI GPIO初始化
XGpio_Initialize(&Gpio_led, LED_DEVICE_ID);
//设置LED为输出
XGpio_SetDataDirection(&Gpio_led, LED_CHANNEL, 1);
while(1)
{
XGpio_DiscreteWrite(&Gpio_led, LED_CHANNEL, ~XGpioPs_ReadPin(&gpiops_inst, MIO_KEY0));
}
return 0;
}