-1

我想做这样的:

   int prev = 0;
   int delay = 1500;
   void loop(){
       int now = micros();
       if(now - prev > delay){
           //
       }
   }

那是给阿杜诺的。我如何clock_gettime(CLOCK_REALTIME, &gettime_now);在 C 中像micros()上面的 arduino 代码一样工作?在树莓派中

4

1 回答 1

1

我不会真的在 C 程序中使用忙轮询时钟,它是一个系统调用。它适用于 µController,但不适用于操作系统。你可以只使用睡眠。

无论如何,clock_gettime timespec 所以只需仔细计算(注意不要溢出你的 longs)。(long) (now.tv_sec - prev.tv_sec)*1000*1000 + (now.tv_nsec - prev.tv_nsec)/1000

PS你不应该在你的代码中初始化 prev 吗?

于 2018-11-19T05:26:00.057 回答