So-net無料ブログ作成

ESP32のシステムタイマーの値を取得する。 [ESP32]

Arduinoで起動時からの経過時間を取得する関数としてmillisがありますが、戻り値が32bit長なので49日程度でオーバーフローしてしまい、起動時からの経過時間として利用する事は向かない。

μITRONであれば32bit+16bit長のシステムタイマーで9000年くらいオーバーフローしないで済む話ですが、ESP32 ArduinoもRTOSな訳ですから、そこは充分な長さのタイマーを持っている事をここでちょっと紹介しています。
https://hamayan.blog.so-net.ne.jp/2018-02-18-2

freeRTOSの高精度タイマーはライブラリとして提供されており、詳細は以下のリンクを参照して下さい。
https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/esp_timer.html#obtaining-current-time

μs単位で64bit長のタイマーがあり、つまり29000年くらいオーバーフローしない?

nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。