[嵌入式linux] linux下定时器的问题

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部