programing:tkernel-programing:tk-dly-tsk-time
目次
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の「周期ハンドラ」を使うか、自前でハードタイマ割込みでイベントフラグなどを使う。
補足
- アバウトな待ち時間が必要な場合は、
tk_dly_tsk()
でも十分使える。 - iTronでもたぶん同様の動き。
programing/tkernel-programing/tk-dly-tsk-time.txt · 最終更新: 2019/05/08 10:16 by yoko