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