насколько быстро c ++ может постоянно проверять переменную - PullRequest
0 голосов
/ 22 октября 2019

Я использую цикл занятости, чтобы проверить, когда условие истинно, и сделать снимок, но мне нужно иметь задержку менее 10 миллисекунд, когда условие истинно, и когда мой цикл обнаруживает его. Является ли этот цикл жизнеспособным?

Он работает на медленном малиновом пи ноль.

for (;;) {

  for (pin = 0; pin < 8; ++pin) {
    // Some other thread changed counter, gets detected here
    if (globalCounter[pin] != myCounter[pin]) {
      //Take picture
    }
  }
}

полный код, который я хочу принять: https://github.com/WiringPi/WiringPi/blob/master/examples/isr.c

1 Ответ

4 голосов
/ 22 октября 2019

Задержка кода, особенно те, которые зависят от аппаратного обеспечения, должна быть проверена вместе с остальным кодом и в целевой среде.

Я считаю, что невозможно дать ответ «да / нет»без реального запуска теста в физической системе со всем реализованным.

Мое единственное предложение состояло бы в том, что занятые циклы обычно являются пустой тратой ресурсов и их трудно поддерживать, и их часто можно избежать, вызывая желаемое поведение только тогда, когдаустановлен аппаратный флаг или когда целевая переменная изменяется в коде.

...