今天要做延时的东西,us级别。
首先选择了usleep,基本没什么太大用写个usleep(10)也能定时定到10ms去,
后来选择了select,超过5ms左右还是好用的,
再后来nanosleep,然而并没有什么卵用。好像结果也差不多了多少。(此处存疑,平台问题还是其他问题)。
到最后。at last!
最霸道的!
void Delay()
{
unsigned char a,b,c;
for(a=0;a<?;a++)
for(b=0;b<?;b++)
for(c=0;c<?;c++);
}
数据表如下
/**********************************************************************************************************************/
延时时间 a的值 b的值 c的值 延时误差(us)
10us 1 1 1 -0.5
20us 1 1 8 0
30us 1 1 15 +0.5
40us 2 1 9 0
50us 1 1 28 0
60us 1 1 35 +0.5
70us 1 1 42 +1
80us 1 1 48 0
90us 1 1 55 +0.5
100us 1 1 61 -0.5
200us 1 1 128 0
300us 3 1 63 +1.5
400us 2 1 129 0
500us 5 1 63 +0.5
600us 6 1 63 0
700us 7 1 63 -0.5
800us 1 3 175 +0.5
900us 9 1 63 -1.5
1ms 1 3 219 -1.5
2ms 2 3 220 +3
3ms 3 3 220 +3
Xms X 3 220 +3
X的范围为2到255)
对于不同的平台,里面的值自己测一下
三层嵌套for!!!
着实霸道!
1251

被折叠的 条评论
为什么被折叠?



