2014-02-24 25 views
3

我正在使GPS設備運行約一年而不重新啓動。我正在使用TinyGPS+庫。我注意到庫中有millis()函數。所以他們可以溢出。有沒有辦法避免它?Tinygps庫中的millis()函數溢出

+0

當它環繞並妥善處理時,你無法檢測到它嗎? – tangrs

+0

爲什麼你不使用fix_age,它很長,因此不會溢出 – AlexWien

回答

1

但是你需要知道從節目開始或間隔開始的時間。

unsigned long start = millis(); 
... 
// Long running actions.... 
... 
unsigned long stop = millis(); 
unsigned long interval = stop-start; 

只要開始和結束間隔不超過49天,這仍然有效。我懷疑你需要計數從程序開始到計數器溢出的時間間隔。

也見這裏:http://forum.arduino.cc/index.php?topic=122413.0

+0

Thanx叔叔的答覆。這意味着millis()函數在近50天內溢出。 1.我懷疑它會影響時間間隔嗎? 2.我是否必須根據給定的鏈接更正所有的millis()函數? (數量很大) 3.即使在溢出之後,它的工作時間間隔是否正確? – user3218743

+0

1.無用時間小於溢出值你很好 2.是的。下次總是寫millis() - startTime 3.是 – Lesto

+0

Thanx @lesto。這是有用的 – user3218743

1

可以使用米利斯()和長int變量天天算時間,另一個變量天天算,然後復位定時器而不是Arduino的。

有了這個,你不必擔心溢出並保持正常工作。