タイマー 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 には待機時間をマイクロ秒単位で指定します。