在 ,时钟频率clk = 100M 的情况下测得usleep()函数的延时情况。
代码相当的简单,用一管脚输出高低电平,用示波器测得:
usleep(1) = 12.5 us;
usleep(5) = 16.5 us;
usleep(10) = 21.5 us;
usleep(20) = 31.5 us;
usleep(50) = 61.0 us;
usleep(100) = 110.6 us;
usleep(200) = 210.0 us;
usleep(500) = 507.0 us;
usleep(1000) = 1 ms;
usleep(5000) = 4.96 ms;
usleep(10 000) = 9.92 ms;
在单步调试的时候发现 usleep函数设计到底层的一些函数,就没有深入研究。把nios系统时钟改成50M,SDRAM 时钟还是100M时,发现系统貌似可以正常运行,并且延时时间不变,不知道这是怎么个故事,期待高手解答一下。