登录站点

用户名

密码

利用Xilinx的XPS工具写的一个时钟

已有 260 次阅读  2010-08-16 18:09
利用Xilinx的XPS工具写的一个时钟

 

1. GPIO外设的配置:

(1) 新建工程,添加duan ,wei ,Leds_8Bit三个GPio外设,并且将其与总线连接,设置地址和相应的长度。然后将添加的三个GPio端口在port下的GPio_d_out设置为make External,用来产生外部GPIO连接。

(2) 在Project下点击UCF文件,添加相应的三个GPio外设的端口。然后在Application下双击Compiler Options,在Environment下选择Use Default Linker ,在Debug and Optimization下选择No Optimization

(3) 点击编译按钮,进行编译。

2. 定时器和中断的配置:

(1) IP  Catalog下的DMA and Timer中双击添加XPS Timer/Counter定时器,在Clock,Reset and Interrupt下双击XPS Interrupt......,添加中断。将定时器的名字改为delay,并且与总线相连接。在地址下点击Generate Addresses,为其添加地址。

(2) port下输入timer1作为delayinterrupt连接Interrupt    下拉为 timer1。在microblaze_0下的INTERRUPT选择New Connection,创建一个新的网络。

(3) Irq下选择microblaze_0_INTERRUPT。单击Intr,将弹出的窗口中的timer1添加到右边的窗口。

(4) 将 delay 下的CaptureTrig0设置为net_gnd

(5) 双击delay,在弹出的窗口中将Only One Timer is present选中。

(6) 最后在Application 下的Sources中右键添加写好的C文件。选择工具栏中Device Configuration下的Update,进行编译。编译完成后点击Download下载到EXCD-1板卡中。

3. 扩展功能:

按键控制时、分的加减。

(1) 首先添加按键的GPIO外设button,设置方法同第一步的方法相同。注意添加的时候不要忘了在system.ucf 中添加其对应的端口。

(2) 然后在C程序中添加相应的代码。定义全局变量Xuint32 DataRead;  //读取按钮数

XGpio Push_Bottons_4Bit; //定义GPIO按钮

在初始化函数中添加按键初始化语句:

Status = XGpio_Initialize(&Push_Bottons_4Bit, XPAR_BUTTON_DEVICE_ID);  //GPIO_BUTTONS_4BIT初始化

XGpio_SetDataDirection(&Push_Bottons_4Bit, 1, 0xFFFFFFFF);  //设置为输入

添加按键扫描函数:

void keyscan()

{

DataRead = XGpio_DiscreteRead(&Push_Bottons_4Bit, 1);//读取按键信息

if(DataRead == 0x7) //第一个按键

{

  XIntc_mMasterEnable(XPAR_XPS_INTC_0_BASEADDR);//关闭中断

  XIntc_mEnableIntr(XPAR_XPS_INTC_0_BASEADDR, 0x0);

delay(400);

DataRead = XGpio_DiscreteRead(&Push_Bottons_4Bit, 1);//读取按键信息

if(DataRead != 0x7)

{

shi++;

if(shi==24)

shi=0;

XIntc_mMasterEnable(XPAR_XPS_INTC_0_BASEADDR);//再次打开中断

XIntc_mEnableIntr(XPAR_XPS_INTC_0_BASEADDR, 0x1);

}

  }//此处仅仅只有一种扫描,若要增加按键,即多增加几个if即可

上一篇: 中电网博客搬家了 下一篇: 深入浅出谈高速串行信号测试(三)——误码率 (转)

分享 举报