微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 一个有关Xilinx microblaze简单语法的问题

一个有关Xilinx microblaze简单语法的问题

时间:10-02 整理:3721RD 点击:
今天试了一下 Xilinx microblaze,写了一个简单的程序,主函数如下:
        while (1)
        {
                XGpio_DiscreteSet(&led,1,0x01);//
                delay_ms(1000);
                XGpio_DiscreteSet(&led,1,0x02);
                delay_ms(1000);
         }
      这个函数(XGpio_DiscreteSe)只对第三个参数中对应位为1的位有影响,上面函数的效果理应当是:首先led0亮,然后led1亮,最后两个发光二极管一直亮着,可是实际效果确是:两个led间隔闪烁。  
     请问这是为什么?还是我有什么地方弄错了?

0001
0010
bit0,bit1都轮流变了


XGpio_DiscreteSet不是只对第三个参数对应位为1的位有影响,对其他位没有影响么?
第一句XGpio_DiscreteSet(&led,1,0x01);中的0x01为0000 0001,最后一位为1,所以只将最后一位led置1,其他位的led状态不变,第二句XGpio_DiscreteSet(&led,1,0x02);中的0x02为0000 0010,倒数第二位为1,所以只将倒数第二位led置1,其他位led状态不变,按照这样的逻辑,经过这两句程序,两个led都被置一了,都亮了,而不是循环闪烁,,,这个思路其中有什么地方出错了么?

0x01代表led1给高电平(点亮),led2给低电平(不点亮)



   XGpio_DiscreteSet 您好!请问这些函数是在哪里定义的呢?我现在才开始接触这个?求指教啊


头文件里有的
  #include "xparameters.h"#include "xgpio.h"

参考:1.http://xilinx.eetrend.com/forum/1278#comment-2323
2.http://forums.xilinx.com/t5/Embe ... ghlight/true#M16199

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top