人眼的视觉暂留时间大概在二十四分之一秒左右(所以一般电视电影至少是24帧以上,才会看起来是连续的动作),延时的时间设置小于40ms即可。延时太短会加重cpu的负担,所以具体数值要自己权衡。
写延时函数有两个方法:
1.如果有用到实时操作系统(RTOS),可以用OS的API,比如: sleep(20)
2.没有用RTOS时,一般用循环语句来实现延时。具体循环次数需要通过系统的主频来计算。代码例子(循环次数 100x500 = 50000次,延时时间=单次循环的时间 x 50000):
int i = 0, j = 0;
for(i = 0; i < 100; i++)
{
for(j = 0; j < 500; j++)
{
;
}
}
每位显示的间隔不超过20 ms