2015-10-01 40 views
0

快速的問題,我很難在文檔中找到。While Loops - Time

我想要做一個while loop將持續一段特定的時間(如500毫秒)。它能多快地做一個循環?每個循環都不會做很大的工作,但是隻要傳感器的光強度高於630nm就可以讀取。

它可以工作,把每次迭代爲1ms?

我寫在NXC,這是非常類似於C,我猜...

+2

如何使用計時器? – LPs

+0

@LP也提出了這個想法,但這個問題的答案仍然對我很有意思。 – diaco

+0

你怎麼能在答案?至少發佈MCU的速度,環境等.. – LPs

回答

1

你所要做的就是基本檢查,如果在開始時的當前系統時間和系統時間之間的差異小於你想要的值(在這種情況下是500ms)。至於它能夠多快地完成一個循環,完全取決於你的實現。您可以跟蹤每個循環所需的時間,可能會打印出來供您驗證。

您可能已經知道currentTick()以毫秒爲單位返回當前系統時間。所以這裏是你的代碼應該看起來像:

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

} 
+0

謝謝。最後,這是我開始做循環的方式。這是最好的解決方案。 – diaco