今天试了一下 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间隔闪烁。
请问这是为什么?还是我有什么地方弄错了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
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都被置一了,都亮了,而不是循环闪烁,,,这样的想法难道是错的?
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.
2.http://forums.xilinx.com/t5/Embe ... ghlight/true#M16199
一周热门 更多>