使函数在C中运行特定的时间

时间:2018-08-30 23:00:34

标签: c time raspberry-pi modbus

我需要能够运行一段代码x秒钟,然后停止。

while(timeElapsed < setTime){
     do whatever
}

如果有人好奇,我们要在这里做的是让程序通过用户设置的一定时间通过Modbus轮询指示器。因此,我有一个输入字段供用户设置轮询功能应在循环中运行的时间。顺便说一下,这将在树莓派上完成。

1 个答案:

答案 0 :(得分:3)

一种方法是包括time.h标头并使用difftime函数。它将实现检查是否经过的时间达到设置的时间。

示例:

#include <time.h>

void func(float delayInSeconds) {
    time_t startTime;
    time_t now;
    float elapsedTime;
    float setTime = delayInSeconds;

    time(&startTime);
    while (elapsedTime < setTime) {
        //do something...

        now = time(NULL);
        elapsedTime = difftime(now, startTime);
    }
}