多任务操作系统中的延时操作应该注意的事项
作者:网络转载 发布时间:[ 2013/7/11 10:43:23 ] 推荐标签:
Linux等多任务操作系统中使用延时函数要特别注意以下几点:
(1)应用层和内核层的延时函数是不能混用的。因为,内核层的延时函数在调用过程中是不会发生任务切换的延时是精确的,而应用层的延时函数在延时函数调用是会发生任务切换,延时是不精确的。
(2)模拟时序的操作必须要在内核层完成,即函数执行的过程中不能够发生任务切换,因为切换会导致延时不精确。
(3)在应用层的一个任务中多次频繁的调用延时函数会导致延时精度偏差非常的大。
那么,如果我们想在应用层中实现模拟时序和一个任务中多次调用延时函数这类操作应该怎么办?
(1)根据CPU的频率来计算一次加减法运算的时间来替代标准C语言提供的延时函数。
(2)将任务的优先级提高到不能被中断的级别。
下面贴出一段,我们使用PPC405EP在应用层做延时的函数:
/*f=25MHz 1us---n=2*/
/*PPC405EP 1us---n=10*/
void delayus(unsigned char n)
{
n = n*10;
while(--n)
;
}
/*f=25MHz 1ms---n=1*/
/*PPC405EP 1ms---n=1*/
void delayms(unsigned char n)
{
unsigned char i=0x64;
while(--n)
{
while(--i)
delayus(0x64);
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11