4
millis()ロールオーバーをどのように処理できますか?
5分ごとにセンサーを読み取る必要がありますが、スケッチには他のタスクもあるためdelay()、読み取りと読み取りの間だけではできません。これらの行に沿ってコーディングすることを提案する遅延なしの点滅チュートリアルがあります: void loop() { unsigned long currentMillis = millis(); // Read the sensor when needed. if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; readSensor(); } // Do other stuff... } 問題は、millis()約49.7日後にゼロにロールバックすることです。私のスケッチはそれよりも長く実行することを目的としているため、ロールオーバーによってスケッチが失敗しないようにする必要があります。ロールオーバー状態(currentMillis < previousMillis)を簡単に検出できますが、どうすればよいかわかりません。 したがって、私の質問:millis()ロールオーバーを処理するための適切/最も簡単な方法は何でしょう か?