原创 MicroBlaze控制LED实验二(按下按键对应的LED点亮)

2009-12-24 13:04 4642 9 12 分类: FPGA/CPLD
软件环境为Xilinx Platform studio 11.3,开发板为红色飓风2代Xilinx版

1.打开XPS,创建一个新工程,名称为lab4

2.Board Selection: 选择和开发板对应的参数,reset polarity选active low

3.System Configuration: 选择Single-Processor System

4.Processor Configuration: Reference Clock Frequency和System Clock Frequency都选择             50MHz  

5.Peripheral Configuration:

Add Device,IO Interface Type选GPIO,Device选LEDS;

Add Device,IO Interface Type选GPIO,Device选Push_Buttons; 

GPIO Data Width默认为32bit,一直next,直至finish

6.打开UCF文件,把LED和按键的管脚连上

7.在Project Tab中双击iMPACT Command File,把其中的5改为2,保存文件

8.Generate Libraries and BSPs

9.在Application标签中,右键点击Project:TestApp_Memory_microblaze_0中的.C文件,remove,再右键点击Sources,Add New File,建立一个新的C文件,打开C文件,输入如下代码:

#include "xparameters.h"
#include "xgpio.h"
//====================================================

int main (void) 
{
XGpio push;
int i, psb_check;
// define instance pointer for LEDs_8Bit device
XGpio LEDs8_Bit;
XGpio_Initialize(&push, XPAR_PUSH_BUTTONS_DEVICE_ID);
//XPAR_PUSH_BUTTONS_DEVICE_ID要和xparameters.h中的一样
XGpio_SetDataDirection(&push, 1, 0xffffffff);
// initialize and set data direction for LEDs_8Bit device
XGpio_Initialize(&LEDs8_Bit, XPAR_LEDS_DEVICE_ID);
//XPAR_LEDS_DEVICE_ID要和xparameters.h中的一样
XGpio_SetDataDirection(&LEDs8_Bit, 1, 0x0);
while (1)
{
 psb_check = XGpio_DiscreteRead(&push, 1);  
 // output push switches value on LEDs_8Bit device
 XGpio_DiscreteWrite(&LEDs8_Bit, 1, ~psb_check);
 //按键为低有效,而LED为高有效,所以psh_check取反
 for (i=0; i<999999; i++);
}
}
10.在Application标签中,右键点击Project:TestApp_Memory_microblaze_0,选择Build Project
11.Generate Netlist
12.Generate Bitstream
13.Download Bitstream,下载完后按下一个按键,对应的LED就被点亮


文章评论3条评论)

登录后参与讨论

用户230340 2010-4-22 18:24

got it. 就是在Boundary Scan中,FPGA所在JTAG chain的位置决定的,谢谢了:)

用户251222 2010-4-20 11:05

好像和fpga在这个下载链当中所处的位置有关,我用的这个板子要改成2,不同的板子不一样

用户230340 2010-4-20 10:56

7.在Project Tab中双击iMPACT Command File,把其中的5改为2,保存文件. 请教博主,为什么要将5改为2,这个参数是什么意思呢?
相关推荐阅读
用户251222 2010-05-11 16:38
Tri-state (InOut and Output) Signals(EDK中的inout信号)
EDK中有时候要用到inout信号(比如和SRAM连接的DATA线),声明方法如下所述Tri-state(InOut and Output) SignalsA systemon a programma...
用户251222 2010-04-28 17:35
snow leopard下执行tcl代码的简单流程
1.打开terminal,进入桌面2.vi power 在桌面上建立一个文件,文件名为power3.在power文件中输入如下tcl代码:#!/usr/local/bin/wish -f proc p...
用户251222 2010-01-21 13:44
MicroBlaze控制LED实验三(编写简单的LED控制IP核)
软件环境为Xilinx Platform studio 11.3,开发板为红色飓风2代Xilinx版1.在XPS中创建一个新的Project,加入一个GPIO核,GPIO的Data Width改为4,...
用户251222 2009-12-21 14:46
简单的MicroBlaze控制LED实验步骤
MicroBlaze控制LED实验记录:软件环境为Xilinx Platform studio 11.1,开发板为红色飓风2代Xilinx版1.打开XPS,创建一个新工程,名称为microblaze_...
我要评论
3
9
关闭 站长推荐上一条 /2 下一条