ZYNQ SOC中断实验代码

为了加深对中断的原理的理解,这次实验设计并实现一个有中断的LED控制电路,该电路能够在按钮按下时触发LED灯的闪烁,并且通过GPIO和AXI GPIO的方法去完成代码。

下列是原理部分

FPGA--SOC 中断的原理-CSDN博客

1.搭建硬件系统

1.1GPIO

在Interrupt里找到IRQ_F2P这个中断号(中断的原理-CSDN博客),为什么是这个中断号链接有说明。

将GPIO的中断使能打开

因为定义了一个通道需要把这个引脚给个分配(这个引脚给什么没关系,因为用的的GPIO的,用的MIO引脚)

1.2AXI GPIO

这里使用的AXI GPIO需要对通道1、2进行明确的引脚分配(自己分配,分配不一样,后面的代码不一样)

2.官方例程

2.1GPIO

/******************************************************************************
这是一个使用GPIO驱动(XGpioPs)在中断驱动模式下的设计示例。

该示例利用GPIO的中断功能来检测按钮事件,并根据输入设置输出LED。

注意: 这个示例假设硬件设计中有一个Uart设备。 这个示例仅提供对ZynqMp平台上的zcu102和Zynq平台上的zc702的支持。 对于ZynqMP平台,输入引脚是22(zcu102板上的sw19),输出引脚是23(zcu102板上的DS50)。 对于Zynq平台,输入引脚是12(zc702板上的sw14)、14(zc702板上的sw13),输出引脚是10(zc702板上的DS23)。zc702板上的SW15是sw13和sw14的组合。要操作任一输入引脚,保持SW15低电平(两个都应该是00)。
*
******************************************************************************/

/***************************** Include Files包含文件 *********************************/
#include "xparameters.h"
#include "xgpiops.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xplatform_info.h"
#include <xil_printf.h>

/************************** Constant Definitions常量定义 *****************************/
/*
下面的常量对应于在EDK XPS系统中创建的硬件实例的名称。它们在这里定义,以便用户可以轻松地在同一个地方更改所有需要的设备ID。
 */
#define GPIO_DEVICE_ID		XPAR_XGPIOPS_0_DEVICE_ID
#define INTC_DEVICE_ID		XPAR_SCUGIC_SINGLE_DEVICE_ID
#define GPIO_INTERRUPT_ID	XPAR_XGPIOPS_0_INTR

/* 下面的常量定义了所使用的GPIO空间 */
#define GPIO_BANK	XGPIOPS_BANK0  /* Bank 0 of the GPIO Device */
/**************************** 类型定义 ********************************/
/****************** 宏(内联函数)定义 ********************************/
/************************ 函数原型 *****************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值