打印
[嵌入式linux]

linux下定时器的问题

[复制链接]
1410|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zsddn2003|  楼主 | 2011-11-28 19:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用函数setitimer(ITIMER_REAL, &val, NULL)设置定时器为100ms执行一次响应函数,但在控制器上运行时差不多160ms才运行一次响应函数,这是怎么回事?应该怎么写才能在实际运行中也达到100ms执行一次响应函数?
      定时器初始化函数:
void init_time()
{
    struct itimerval val;
    val.it_value.tv_sec = 0; //秒
    val.it_value.tv_usec = 100000; //微秒
    val.it_interval = val.it_value;
    setitimer(ITIMER_REAL, &val, NULL);
}
      sigaction函数:
void init_sigaction()
{
        struct sigaction act;   
        act.sa_handler = timeout_func; //设置信号处理函数
        act.sa_flags   = 0;
        sigemptyset(&act.sa_mask);
        sigaction(SIGALRM, &act, NULL);
}

相关帖子

沙发
delin17| | 2011-11-30 12:24 | 只看该作者
软定时器,是会有一定的延时的。
直接用硬件定时器

使用特权

评论回复
板凳
一朝成名| | 2011-12-1 19:49 | 只看该作者
如ls说的,精度不会很高。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

8

帖子

1

粉丝