【解析新特性】300W单路输出工业电源>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 定时器使用select和taskDelay的原因?

共7条 1/1 1 跳转至

定时器使用select和taskDelay的原因?

菜鸟
2003-10-28 18:37:00    评分
这样使用select( 1, NULL, NULL, NULL, timeout)可以将select作为定时器使用,在timeout后返回。 taskDelay(delay)同样也是放弃CPU使用权,在delay时间后执行后续的函数。 func() { while(1) { getTimeOut. 1. if ((n = select( 1, NULL, NULL, NULL, timeout)) < 0) 2. taskDealy(timeout); } } 请问大家究竟选择select或taskDelay的原因是什么?



关键词: 定时器     使用     select     taskDelay         

菜鸟
2003-10-28 18:59:00    评分
2楼
两个都可以. taskDelay()简洁一些.

菜鸟
2003-10-28 19:09:00    评分
3楼
我用taskDelay 两者下层实现机制应该不同,taskDelay将任务排入延时队列,为delay状态 select将任务归入等待对象的pend队列和延时队列,为pend状态 和select类似,其他的如semTake(xxx,timeout)也可以, 但目的好像不明确

菜鸟
2003-10-28 20:28:00    评分
4楼
我也觉得taskDelay简洁而且明确。 select这样的用法在porting unix或linux的程序到vxworks设备上遇到的。在这两种系统中这样用的目的又是为何呢?

菜鸟
2003-10-28 21:04:00    评分
5楼
有什么bug? 我现在在用着的,555……

菜鸟
2003-10-28 21:38:00    评分
6楼
有什么bug?

菜鸟
2003-10-30 02:26:00    评分
7楼
找UNIX网络编程的书看select的讲解: seletc(1,NULL,NULL,NULL,timeout)是一个timeout时间后返回的精确的定时器。

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]