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年くらいオーバーフローしない?
μ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年くらいオーバーフローしない?
2019-02-11 11:19
nice!(0)
コメント(0)
コメント 0