タイマー API ################################################################################ 概要 ================================================================================ タイマー API では、周期コールバックを行う `RepeatingTimer` と、 時刻取得・スリープ関数を提供します。 型 ================================================================================ xmc::TimerCallback -------------------------------------------------------------------------------- .. code-block:: cpp using xmc::TimerCallback = bool (*)(void *context); 周期タイマーのコールバック型です。 戻り値が `true` の場合は継続、`false` の場合はタイマーを停止します。 引数 `context` には `startMs()` 呼び出し時に渡したポインタがそのまま渡されます。 RepeatingTimer ================================================================================ xmc::RepeatingTimer::startMs -------------------------------------------------------------------------------- .. code-block:: cpp XmcStatus xmc::RepeatingTimer::startMs(uint32_t intervalMs, xmc::TimerCallback cb, void *context); 指定周期 [ms] でコールバックを呼び出すタイマーを開始します。 `intervalMs` には呼び出し周期、`cb` にはコールバック関数、`context` にはコールバックへ引き渡す任意のポインタを指定します。 戻り値は `XmcStatus` です。成功時は `XMC_OK` が返ります。 xmc::RepeatingTimer::cancel -------------------------------------------------------------------------------- .. code-block:: cpp void xmc::RepeatingTimer::cancel(); 動作中タイマーを停止します。 タイマーが動作していない場合に呼び出しても問題ありません。 時刻取得 ================================================================================ xmc::getTimeMs -------------------------------------------------------------------------------- .. code-block:: cpp uint64_t xmc::getTimeMs(); システムが起動してからの経過時間をミリ秒単位で返します。 xmc::getTimeUs -------------------------------------------------------------------------------- .. code-block:: cpp uint64_t xmc::getTimeUs(); システムが起動してからの経過時間をマイクロ秒単位で返します。 待機 ================================================================================ xmc::sleepMs -------------------------------------------------------------------------------- .. code-block:: cpp void xmc::sleepMs(uint32_t ms); 指定ミリ秒だけスリープします。 `ms` には待機時間をミリ秒単位で指定します。 xmc::sleepUs -------------------------------------------------------------------------------- .. code-block:: cpp void xmc::sleepUs(uint32_t us); 指定マイクロ秒だけスリープします。 `us` には待機時間をマイクロ秒単位で指定します。