matrx2010 发表于 2011-10-7 23:07:48

microblaze for延时

在网上看到有人讨论microblaze软件延时问题,for(i=0;i<1000000;i++) 这样的语句大概延迟多长时间,时钟是100MHZ的

matrx2010 发表于 2011-10-8 10:19:06

附上程序
#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并没有发生变化,我觉得是延时出了问题,但不知道这里的延时怎么计算?

matrx2010 发表于 2011-10-9 11:14:29

求大牛们现身帮小弟解释一下

wang110 发表于 2011-10-9 18:58:24

while(1)
{   
XGpio_DiscreteWrite(&gpio,1,~0x01);
for(i=0;i<500000;i++);
XGpio_DiscreteWrite(&gpio,1,~0x02);
for(i=0;i<500000;i++); //增加

}
}
另外,在不同的优化级别时,它的延时时间是不一样的。

matrx2010 发表于 2011-10-10 16:26:36

【3楼】wang110
-----------------------------------------------------------------------
谢谢指点,现在调通了,是我考虑错了延时没有问题。只是在compile option里面要把回复optimization level设置成No optimization。这样就不会把for循环的延时优化掉了
页: [1]
查看完整版本: microblaze for延时