目次

tk_dly_tsk(1)での待ち時間

tk_dly_tsk(1)での待ち時間は、1~2mSになる。

経緯

以下のコードを実行して、信号をオシロで実測したら2m秒周期となったので確認した。

while (1) {
    tk_tly_tsk(1);      /* 1m秒待ちのつもり */
    port_inv();         /* ポート信号反転 */
}

説明

t-kernelの仕様書を確認すると、「(1)を指定した場合は、内部Tickタイマーの2回目の検出で起床する」と書かれている(尚、0指定は出来ない)。
たぶん、最低でも指定した待ち時間以上は確保するとの考え方のよう。

対応

1m秒待ちしたい場合は、T-Kernelの「周期ハンドラ」を使うか、自前でハードタイマ割込みでイベントフラグなどを使う。

補足