并行程序io设计-电4吴宇洲-u201313549.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并行程序io设计-电4吴宇洲-u201313549

并行IO接口设计院系电子信息工程系班级电信1304班学号 U201313549姓名吴宇洲实验目的1. 掌握GPIO IP核的工作原理和使用方法2. 掌握中断控制方式的IO接口设计原理3.掌握IO接口程序控制方法——查询方式——延时方式实验任务按键输入,显示按下的按键编码到sonsole——查询、中断三.硬件电路框图硬件实现步骤Burron作为外部输入信号,输入到GPIO中,当外部有按键时,GPIO输出中断请求。中断控制器AXI INTC发送Irq信号到MicroBlaze微处理器,实现中断服务,在console中显示Button信息软件代码查询方式代码#includexparameters.h#includestdio.h#includexil_io.h#includexil_types.h#define btn_data 0define btn_ctr 0define btn_status 0oid Delay_50ms();short pshBtn;int main(void){ short btn;xil_printf(\r\nRunningGpioInput Test!\n\r); Xil_Out8(btn_ctr,0xff);pshBtn=0x00;while(1) {pshBtn=Xil_In8(btn_status); if(pshBtn) {btn=Xil_In8(btn_data); Xil_Out8(btn_status,0x01);xil_printf(Button Pushed!!!the state is 0x%X\n\r,btn); Delay_50ms();pshBtn=0x00; } } return 0;}void Delay_50ms(){inti;for(i=0;i5000000;i++);}中断方式代码#include xparameters.h#include xgpio.h#include xintc.h#include stdio.hvoid Initialize();//初始化函数void Delay_50ms();//延时函数void PushBtnHandler(void *CallBackRef);//按键的中断函数XGpioBtns;//定义GPIO外设变量XIntcintCtrl;//定义一个xintc外设变量intpshBtn;作为中断标志int state1;//存储Btns和Dips的状态值intmain(){Initialize();xil_printf(\r\nRunningGpioInputInterrupt!\r\n);while(1){if(pshBtn)//若按下按键,则打印相关信息{xil_printf(Button Interrupt Trigger!!!the state is 0x%X\n\r,state1);pshBtn=0;}}return 0 ;}void Initialize(){//初始化Btns实例,并设定其为输入方式XGpio_Initialize(Btns,XPAR_BUTTON_DEVICE_ID);XGpio_SetDataDirection(Btns,1,0xff);//初始化intCtrl实例XIntc_Initialize(intCtrl,XPAR_AXI_INTC_0_DEVICE_ID);//GPIO中断使能XGpio_InterruptEnable(Btns,1);XGpio_InterruptGlobalEnable(Btns);//对中断控制器进行中断源使能XIntc_Enable(intCtrl,XPAR_AXI_INTC_0_BUTTON_IP2INTC_IRPT_INTR);//注册中断服务函数XIntc_Connect(intCtrl,XPAR_AXI_INTC_0_BUTTON_IP2INTC_IRPT_INTR,(XInterruptHandler)PushBtnHandler,(void*)0);microblaze_enable_interrupts();//允许处理器中断microblaze_register_handler((XInterruptHandler)XIntc_InterruptHandler,(void*)intCtrl);XIntc_Start(intCtrl,XIN_REAL_MODE);//启动中断控制器}void Delay_50ms(){inti;for(i=0;i5000000;i++);}void Push

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档