【问题标题】:While Loops - TimeWhile 循环 - 时间
【发布时间】:2015-10-01 09:22:07
【问题描述】:

我很难在文档中找到的快速问题。

我正在尝试做一个while loop,它将持续一段特定的时间(比如 500 毫秒)。它可以多快完成一个循环?每个循环都不会做大任务,只要传感器的光强度高于 630nm 就读取。

是否可以将每次迭代设置为 1 毫秒?

我正在用 NXC 编写,我猜它与 C 非常相似......

【问题讨论】:

  • 用定时器怎么样?
  • @LPs 也提出了这个想法,但这个问题的答案对我来说仍然很有趣。
  • 你怎么能得到答案?至少贴一下 MCU 的速度、环境等等。。
  • “传感器的光强度高于 630 nm”完全没有意义。光强度不是以纳米为单位测量的。
  • 630 nm 是红光 ;)

标签: c nxc


【解决方案1】:

您要做的基本上是检查当前系统时间与开始时系统时间之间的差异是否小于您想要的值(在这种情况下为500ms)。至于它可以多快完成一个循环,这完全取决于您的实现。您可以跟踪每个循环所花费的时间,可能会将其打印出来以供验证。

您可能知道currentTick() 以毫秒为单位返回当前系统时间。所以你的代码应该是这样的:

unsigned int start, current;
start = currentTick();
current = start;
while(cur < (start+500))
{
    //Your task.
    current = curTick();
    printf("Time: %u",current); 

}

【讨论】:

  • 谢谢。最后,这就是我进行循环的方式。这是最好的解决方案。
猜你喜欢
  • 1970-01-01
  • 2019-08-29
  • 2011-06-20
  • 2015-12-15
  • 2013-06-22
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多