Сделать цикл по времени микросекунды в C - PullRequest
0 голосов
/ 19 ноября 2018

Я хотел сделать так:

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

Это для Arduino.Как сделать так, чтобы clock_gettime(CLOCK_REALTIME, &gettime_now); в C работал как micros() в коде Arduino выше?В Raspberry Pi

1 Ответ

0 голосов
/ 19 ноября 2018

Я бы на самом деле не использовал занятый опрос часов в программе на Си, это системный вызов.Это подходит для µController, но не так для ОС.Вы можете просто использовать usleep.

В любом случае clock_gettime timespec, так что просто делайте осторожные вычисления (следя за тем, чтобы не переполнить ваши longs).(длинный) (now.tv_sec - prev.tv_sec) *1000* 1000 + (now.tv_nsec - prev.tv_nsec) / 1000

PS Разве вы не должны инициализировать prev в своем коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...