小编ric*_*ich的帖子

如何实现定时循环?

我需要每秒执行1000次代码.我想做的事情如下:

set up interval timer
while (1)
{
   wait for timer
   do something
}
Run Code Online (Sandbox Code Playgroud)

我的尝试看起来像

// Create timer
timer_t timerid;
struct sigevent sev;

sev.sigev_notify = SIGEV_SIGNAL;
sev.sigev_signo = SIGUSR1;

if (timer_create(CLOCK_REALTIME, &sev, &timerid))
{
perror("timer_create");
exit(1);
}

// Every one mSec (10^6 nsec)
struct itimerspec its;
its.it_value.tv_sec = 0;
its.it_value.tv_nsec = 1000000;
its.it_interval.tv_sec = 0;
its.it_interval.tv_nsec = 1000000;
if (timer_settime(timerid, 0, &its, NULL))
{
perror("timer_settime");
exit(1);
}

// Create mask to wait for SIGUSR1
sigset_t set;
sigemptyset(&set);
sigaddset(&set, SIGUSR1);

while …
Run Code Online (Sandbox Code Playgroud)

c embedded-linux

6
推荐指数
1
解决办法
384
查看次数

标签 统计

c ×1

embedded-linux ×1