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

2020-02-17 19:48发布

       今天试了一下 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间隔闪烁。  
     请问这是为什么?还是我有什么地方弄错了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
hjl240
2020-02-18 05:20
ococ 发表于 2014-2-19 15:22
while循环一直在点灯啊,当然就交替亮了

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都被置一了,都亮了,而不是循环闪烁,,,这样的想法难道是错的?

一周热门 更多>