我很难在文档中找到的快速问题。
我正在尝试做一个while loop
持续特定时间(如 500 毫秒)的操作。它可以多快完成一个循环?每个循环都不会做大任务,但只要传感器的光强度高于 630nm 就读取。
将每次迭代设置为 1ms 是否可行?
我正在用 NXC 编写,这与 C 非常相似,我猜......
您要做的基本上是检查当前系统时间与开始时系统时间之间的差异是否小于您想要的值(在这种情况下为500ms)。至于它可以多快完成一个循环,这完全取决于您的实现。您可以跟踪每个循环所花费的时间,可能会将其打印出来以供验证。
您可能知道currentTick()
以毫秒为单位返回当前系统时间。所以你的代码应该是这样的:
unsigned int start, current;
start = currentTick();
current = start;
while(cur < (start+500))
{
//Your task.
current = curTick();
printf("Time: %u",current);
}