0

我正在使用繁忙的循环来检查条件何时为真并拍照,但是当条件为真时以及当我的循环检测到它时,我需要有少于 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

4

1 回答 1

4

代码延迟,特别是那些依赖于硬件的延迟,应该与其余代码一起在目标环境中进行测试。

我相信,如果没有在物理系统中实际运行测试,并且一切都已实现,就不可能给出“是/否”的答案。

我唯一的建议是繁忙的循环通常会浪费资源并且难以维护,并且通常可以通过仅在设置硬件标志或目标变量在代码中更改时触发所需行为来避免。

于 2019-10-21T22:47:00.763 回答