当前位置: 首页 > wzjs >正文

dw网页设计模板网站建站怎么赚钱

dw网页设计模板网站,建站怎么赚钱,常用的软件下载网站,北京市招投标公共服务平台官网版本:Vivado2020.2(Vitis) 任务:使用 GPIO 中断实现按键 (PL端) KEY控制 (PS端) LED亮灭翻转 目录 一、介绍 二、硬件设计 三、软件设计 四、效果 一、介绍 ZYNQ 的 GPIO 中断功能允许 PS 端通过硬件中断快速响应GPIO引脚的电平…

版本:Vivado2020.2(Vitis)

任务:使用 GPIO 中断实现按键 (PL端) KEY控制 (PS端) LED亮灭翻转

目录

 一、介绍

二、硬件设计

三、软件设计

四、效果


 一、介绍

        ZYNQ 的 GPIO 中断功能允许 PS 端通过硬件中断快速响应GPIO引脚的电平变化(如按键按下、传感器触发等),无需轮询,适合实时性要求高的场景。ZYNQ GPIO支持以下中断触发方式:(通常推荐边沿触发)

  • 边沿触发:上升沿(RISING)、下降沿(FALLING)、双边沿(BOTH)。

  • 电平触发:高电平(LEVEL_HIGH)、低电平(LEVEL_LOW)。

二、硬件设计

        (1)ZYNQ 的配置不再赘述,如Bank电压、UART串口配置(用于debug)、去掉未使用端口等等。其次PL端KEY用了1个EMIO管脚,设置EMIO位宽为1。

        (2)最后整体 bd 设计部分如图所示:设计检查、Generate Output Products、 Create HDL Wrapper、管脚约束、Gnerate Bitstream、Export Hardware(包含比特流文件)、启动Vitis

三、软件设计

#include "stdio.h"
#include "xil_printf.h"
#include "xparameters.h"
#include "xil_exception.h"
#include "xgpiops.h"
#include "xscugic.h"
#include "sleep.h"//===========================自定义宏===========================//#define GPIO_DEVICE_ID  	XPAR_XGPIOPS_0_DEVICE_ID     //宏定义器件ID
#define INTC_DEVICE_ID		XPAR_SCUGIC_SINGLE_DEVICE_ID //宏定义中断控制器(GIC)ID
#define GPIO_INTERRUPT_ID	XPAR_XGPIOPS_0_INTR          //宏定义GPIO中断号#define MIO_LED 	        7	//宏定义LED管脚(PS端LED,根据开发板LED引脚设值,这里对应GPIO MIO 7)
#define EMIO_KEY  	        54	//宏定义KEY管脚(PL端KEY,根据EMIO管脚分配设值,这里对应GPIO 54)//===========================实例化===========================//XGpioPs Gpio;				    //GPIO驱动实例
XScuGic Intc;					//中断控制器驱动实例//===========================函数变量声明===========================//static void Gpio_Init();	//GPIO初始化
static void IntrHandler();	//中断处理函数
static void Setup_Intr_System(XScuGic *GicInstancePtr, XGpioPs *Gpio, u16 GpioIntrId); //建立中断系统static u32 key_value;int main()
{xil_printf("GPIO Interrupt Test \r\n");Gpio_Init();Setup_Intr_System(&Intc,&Gpio,GPIO_INTERRUPT_ID);while(1)return 0;
}
//===========================中断处理函数===========================//
void IntrHandler()
{//debug打印字符串xil_printf("Interrupt detected! \n\r");//屏蔽按键中断XGpioPs_IntrDisablePin(&Gpio, EMIO_KEY);//按键消抖延时20ns(不消抖会反复中断)usleep(20000);//翻转数据并写入LEDkey_value = ~key_value;XGpioPs_WritePin(&Gpio, MIO_LED, key_value);//清除EMIO_KEY中断状态(不清除会一直触发中断,导致死循环)XGpioPs_IntrClearPin(&Gpio, EMIO_KEY);//重新使能按键中断XGpioPs_IntrEnablePin(&Gpio, EMIO_KEY);
}
//===========================GPIO初始化函数===========================//
void Gpio_Init()
{//定义GPIO配置信息(指针类型)XGpioPs_Config * ConfigPtr;//根据器件ID,查找GPIO配置信息ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);//初始化器件驱动XGpioPs_CfgInitialize(&Gpio, ConfigPtr, ConfigPtr->BaseAddr);//GPIO方向设置(0输入/1输出)XGpioPs_SetDirectionPin(&Gpio, MIO_LED,  1);XGpioPs_SetDirectionPin(&Gpio, EMIO_KEY, 0);//设置输出使能(1使能)XGpioPs_SetOutputEnablePin(&Gpio, MIO_LED, 1);
}//===========================建立中断系统===========================//
/* 建立中断系统,使能EMIO_KEY按键的下降沿产生中断* @param GicInstancePtr 是一个指向 XScuGic 驱动实例的指针* @param Gpio 是一个指向连接到中断的 GPIO 驱动实例的指针* @param GpioIntrId 是 Gpio中断控制器ID*/
void Setup_Intr_System(XScuGic *GicInstancePtr, XGpioPs *Gpio, u16 GpioIntrId)
{//定义中断控制器配置信息(指针类型)XScuGic_Config * IntcConfig;//根据中断控制器ID,查找GIC配置信息(Generic Interrupt Controller(通用)中断控制器)IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ID);//初始化中断控制器驱动XScuGic_CfgInitialize(GicInstancePtr, IntcConfig, IntcConfig->CpuBaseAddress);//设置并打开中断异常处理功能Xil_ExceptionInit();Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,GicInstancePtr);Xil_ExceptionEnable();//为GPIO中断设置中断处理函数(IntrHandler为自己编写的中断函数)XScuGic_Connect(GicInstancePtr, GpioIntrId,(Xil_ExceptionHandler)IntrHandler,(void *)&Gpio);//使能处理器中断Xil_ExceptionEnableMask(XIL_EXCEPTION_IRQ);//使能来自GPIO器件的中断XScuGic_Enable(GicInstancePtr, GpioIntrId);//设置GPIO引脚的中断类型(设置EMIO_KEY引脚下降沿时中断)XGpioPs_SetIntrTypePin(Gpio, EMIO_KEY, XGPIOPS_IRQ_TYPE_EDGE_FALLING);//使能来自GPIO引脚的中断XGpioPs_IntrEnablePin(Gpio, EMIO_KEY);
}

四、效果

        上板启动串口发送测试信息,之后每当按一次按键时,串口发送中断debug信息,同时LED灯状态翻转一次。


文章转载自:

http://WJ1UyurC.tLLws.cn
http://DQlpQjCH.tLLws.cn
http://CGwSGWJN.tLLws.cn
http://cWHO0mDx.tLLws.cn
http://Z0xp7nuq.tLLws.cn
http://3gNYq9la.tLLws.cn
http://LVpqeOgy.tLLws.cn
http://IKIMz3xa.tLLws.cn
http://28lYR46p.tLLws.cn
http://5BNk8RfS.tLLws.cn
http://fIkVno2O.tLLws.cn
http://PzDZKUAl.tLLws.cn
http://BiuthvJQ.tLLws.cn
http://rV2wd7CK.tLLws.cn
http://auZhxyje.tLLws.cn
http://HyUH6Q8D.tLLws.cn
http://O7ETpoN2.tLLws.cn
http://cfN9fncJ.tLLws.cn
http://U77AaNsd.tLLws.cn
http://Y9FWlcxl.tLLws.cn
http://vQWt3KLP.tLLws.cn
http://9WyN6PO2.tLLws.cn
http://vmx24mvN.tLLws.cn
http://4DUQMdxg.tLLws.cn
http://3yRoGHjW.tLLws.cn
http://B4kmEkXS.tLLws.cn
http://QK8Obqew.tLLws.cn
http://pJguF7US.tLLws.cn
http://BSzfZk8V.tLLws.cn
http://ZKv4ryBS.tLLws.cn
http://www.dtcms.com/wzjs/637332.html

相关文章:

  • 深圳做企业网站的公司南浔建设局网站
  • 个人网站如何在工信部备案域名查询服务器ip
  • 城乡住房和城乡建设部网站站长工具网址是多少
  • 辽宁网站建设多少钱墨子网站建设
  • 工业设计灵感网站无锡电子商城网站设计
  • 自己怎做网站网站内容设计
  • 建设企业银行网站深圳做网站设计
  • docker做网站企业做淘宝网站需要多少钱
  • 中国印花图案设计网站wordpress 主题.分页
  • 网站模板 婴儿山东省建设公司网站
  • 外贸中间体做哪个网站好高端品牌羽绒服前十名
  • 广东企业网站建设推荐装修设计方案
  • 南宁网站建设网络公司移动互联网营销
  • 青岛网站排名哪家公司好网站组建 需求分析
  • wordpress音乐站源码吉安好的网站建设公司
  • 接加工订单的网站谷德设计网工作
  • 沧州企业网站建设方案购物网站建设目标
  • 常见网站漏洞土木工程招聘网最新招聘信息
  • 网站建设收费标准公司wordpress聊天室插件
  • 搜索引擎怎么收录网站做网站公司需要什么
  • 郑州网站推广电话网站编辑电子商务网站运营专员
  • 网站建设 ui 企业网站网站排名突然掉没了
  • 建设银行网站钓鱼阿里云1M做网站
  • 如何更换网站服务商wordpress用还得shopif好用
  • 网站海外推广多少钱徐州网站建设哪家好薇
  • 网站被墙检测网页设计参考板式
  • 网站建设做的好处网站收录不好怎么办
  • 信息聚合网站怎么做河北高端网站建设
  • 沧州网站优化价格瀑布流wordpress
  • 做pc和移动网站的适配在建设银行网站上还贷