microblaze for延时
在网上看到有人讨论microblaze软件延时问题,for(i=0;i<1000000;i++) 这样的语句大概延迟多长时间,时钟是100MHZ的 附上程序#include"xgpio.h"
#include"xparameters.h"
unsigned char count=0xf0;
XGpio gpio;
int main()
{
unsigned int i,j=0;
XGpio_Initialize(&gpio, XPAR_LEDS_DEVICE_ID);
XGpio_SetDataDirection(&gpio,1,0x0);
while(1)
{
XGpio_DiscreteWrite(&gpio,1,~0x01);
for(i=0;i<500000;i++);
XGpio_DiscreteWrite(&gpio,1,~0x02);
}
}
倒数第四行为软件延时,下载到板子上led并没有发生变化,我觉得是延时出了问题,但不知道这里的延时怎么计算? 求大牛们现身帮小弟解释一下 while(1)
{
XGpio_DiscreteWrite(&gpio,1,~0x01);
for(i=0;i<500000;i++);
XGpio_DiscreteWrite(&gpio,1,~0x02);
for(i=0;i<500000;i++); //增加
}
}
另外,在不同的优化级别时,它的延时时间是不一样的。 【3楼】wang110
-----------------------------------------------------------------------
谢谢指点,现在调通了,是我考虑错了延时没有问题。只是在compile option里面要把回复optimization level设置成No optimization。这样就不会把for循环的延时优化掉了
页:
[1]