实验 使用 vivado zedboard GPIO 开关 开控制 LED
2014-07-29 22:48
375 查看
前面我做了几个实验 都没有用过 开关,这一次用一用
发现 vivado 真的挺方便 所以 使用 vivado 开发
创建新工程 –》 next –》next
勾选 Do not specify sources at this time //这样跳过后面两个添加文件页面
选择 board –》 zedboard –》next –》finsh
就创建完了。
创建一个空的 Diagram
Create Block Design -》点 ok
接下来 添加 IP核 可以点击 提示 Add IP 也可以点击
搜索 zynq 点 第一个
然后 点击 Run Block Automation 自动配置
点击
添加 GPIO
接下来 会提示 Run Connection Automation 自动连线
选择 S_AXI 变成下图
系统自动添加了 一些IP核
继续点击 Run Connection Automation -》 GPIO
选择 led_8bits -》 OK
同样的方法 添加 GPIO IP核 -》 Run Connection Automation 两次 选择 sws_8bits
就完成了
点击 红圈处 验证 一下。
点击 Source -》 design_1 右键 –》 Create HDL Wrapper -》 OK
然后 Synthesis 、 Implementation 、Bitstream 依次过一遍
这个过程费时间。。 Synthesis 以后 一直点ok 最后 点击 Generate Bitstream
选上 launch SDk 点 OK 就启动SDK 了
我的 SDK 是
点击 FILE –》 new –> Application project
选一个 helloworld
复制以下代码
确保 zedboard 已经连到电脑上 并打开电源
先 xilinx Tools –> ProgramFPGA
然后
-> Run As –> Launch on Hardware (GDB)
可以看到 结果 64 + 1
第 7 个 和 第 1 个 开关 是开的
表示 所以 led 也亮了
发现 vivado 真的挺方便 所以 使用 vivado 开发
1.建工程
我使用 vivado 2013.4创建新工程 –》 next –》next
勾选 Do not specify sources at this time //这样跳过后面两个添加文件页面
选择 board –》 zedboard –》next –》finsh
就创建完了。
2.PL端 IP核添加与连线
创建一个空的 Diagram
Create Block Design -》点 ok
接下来 添加 IP核 可以点击 提示 Add IP 也可以点击
搜索 zynq 点 第一个
然后 点击 Run Block Automation 自动配置
点击
添加 GPIO
接下来 会提示 Run Connection Automation 自动连线
选择 S_AXI 变成下图
系统自动添加了 一些IP核
继续点击 Run Connection Automation -》 GPIO
选择 led_8bits -》 OK
同样的方法 添加 GPIO IP核 -》 Run Connection Automation 两次 选择 sws_8bits
就完成了
点击 红圈处 验证 一下。
3.生成 bit 的过程
点击 Source -》 design_1 右键 –》 Create HDL Wrapper -》 OK
然后 Synthesis 、 Implementation 、Bitstream 依次过一遍
这个过程费时间。。 Synthesis 以后 一直点ok 最后 点击 Generate Bitstream
4.输出到SDK
选上 launch SDk 点 OK 就启动SDK 了
我的 SDK 是
点击 FILE –》 new –> Application project
选一个 helloworld
复制以下代码
#include <stdio.h> #include "platform.h" #include "xparameters.h" #include "xgpio.h" #include "sleep.h" #include "platform.h" #include "xil_types.h" #include "xgpiops.h" /************************** Constant Definitions *****************************/ /* * The following constant maps to the name of the hardware instances that * were created in the EDK XPS system. */ #define XPAR_LEDS_ID XPAR_AXI_GPIO_0_BASEADDR //AXI_GPIO_0 是添加的第一个 gpio 所以是 leds #define XPAR_SWS_ID XPAR_AXI_GPIO_1_BASEADDR //那么 这个自然是 开关了 int main() { static XGpio LED_Ptr;//定义GPIO指针 static XGpio SWS_Ptr; int XStatus; int num = 0; //初始化 LED XStatus = XGpio_Initialize(&LED_Ptr,XPAR_AXI_GPIO_0_DEVICE_ID); if(XST_SUCCESS != XStatus) print("GPIO INIT FAILED\n\r"); XGpio_SetDataDirection(&LED_Ptr, 1,0x00);//通道1;设置方向 0 输出 1输入, 0x00表示8位都是输出 XGpio_DiscreteWrite(&LED_Ptr, 1,0x00); //初始化 开关 XStatus = XGpio_Initialize(&SWS_Ptr,XPAR_AXI_GPIO_1_DEVICE_ID); if(XST_SUCCESS != XStatus) print("GPIO INIT FAILED\n\r"); XGpio_SetDataDirection(&SWS_Ptr, 1,0xFF);//通道1;设置方向 0 输出 1输入 0xFF表示8位都是输入 while(1){ num = XGpio_DiscreteRead(&SWS_Ptr, 1); //从开关处 读数据 printf("Numb %d\n\r", num); XGpio_DiscreteWrite(&LED_Ptr, 1,num); //直接写入 led usleep(1000); //delay 1ms } printf("end\n\r \n\r"); return 0; }
确保 zedboard 已经连到电脑上 并打开电源
先 xilinx Tools –> ProgramFPGA
然后
-> Run As –> Launch on Hardware (GDB)
可以看到 结果 64 + 1
第 7 个 和 第 1 个 开关 是开的
表示 所以 led 也亮了
相关文章推荐
- 实验 使用 vivado zedboard GPIO 开关 开控制 LED
- [精品书单]Button: 使用按键,控制开关 LED 灯
- 单片机实验期末考试-使用两个外部中断控制8只LED显示的电路
- (一)GPIO 编程实验 LED 流水灯控制
- [ZigBee] 3、ZigBee基础实验——GPIO输出控制实验-控制Led亮灭
- CC2530学习路线-基础实验-GPIO 控制LED灯亮灭(1)
- Vivado下使用Microblaze控制LED
- 树莓派使用命令控制Led开关
- zedboard(zynqXC7Z020)入门实验之PS_GPIO的使用(MIO)
- erlang下 BeagleBone的GPIO控制实验、以及自带led点亮方法
- CC2530学习路线-基础实验-GPIO 按键控制LED灯亮灭(2)
- 2.5 使用ARDUINO做主控,手机发送短信控制开关LED
- ZigBee基础实验——GPIO输出控制实验-控制Led亮灭
- Beaglebone Black–GPIO 开关 LED(三极管与继电器实验)
- 使用TI CC2530的GPIO控制Led
- Nodemcu freertos 学习之路 -- GPIO口控制LED灯开关
- 大一上学期C++第11周实验报告(二)学会使用循环控制语句解决实际问题
- android 用gpio作为pwm输出控制led背光
- 第十一周实验报告1--学会使用循环控制语句解决实际问题,并强化注重效率的观念
- JTAG_UART控制LED实验(转帖)