一个有关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间隔闪烁。  
     请问这是为什么?还是我有什么地方弄错了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
hjl240
1楼-- · 2020-02-18 00:21
整个程序如下,有什么问题么?为什么现象会是led交替闪烁


micro.png
ococ
2楼-- · 2020-02-18 01:08
while循环一直在点灯啊,当然就交替亮了
hjl240
3楼-- · 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都被置一了,都亮了,而不是循环闪烁,,,这样的想法难道是错的?
zj_456
4楼-- · 2020-02-18 05:32
 精彩回答 2  元偷偷看……
ococ
5楼-- · 2020-02-18 10:23
hjl240 发表于 2014-2-19 15:30
XGpio_DiscreteSet不是只对第三个参数对应位为1的位有影响,对其他位没有影响么?
第一句XGpio_DiscreteS ...

XGpio_DiscreteSet(&led,1,0x01) :中的0x01为0000 0001,最后一位为1,所以只将最后一位led置1,其他位的led状态为0.
XGpio_DiscreteSet(&led,1,0x02);中的0x02为0000 0010,倒数第二位为1,所以只将倒数第二位led置1,其他位led状态为0.
emesjx
6楼-- · 2020-02-18 12:24

一周热门 更多>