一个有关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间隔闪烁。
请问这是为什么?还是我有什么地方弄错了?
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
