OS_StartTimer*

構文

#include <iris/os.h>

void OS_StartTimer( OS_TimerId id, u16 count, OS_TimerPrescaler preScale );
void OS_StartTimer32( OS_Timer32Id id, u32 count, OS_TimerPrescaler preScale );
void OS_StartTimer48( OS_Timer48Id id, u64 count, OS_TimerPrescaler preScale );
void OS_StartTimer64( u64 count, OS_TimerPrescaler preScale );

引数

id 使用するタイマのタイマID(使用するタイマの個数によって異なります)
count タイマカウント
preScale タイマスケール

返り値

なし。

説明

内部タイマーを設定し、起動します。
IRISには16ビットカウンタのタイマが4つあり、それぞれを独立して使用することも出来、また連続する2つ以上のタイマをあわせて16ビットより大きいカウントのタイマとして用いることも出来ます。
OSStartTimer() は、16ビットのタイマそれぞれを使用するものです。
OSStartTimer32() は、連続する2つのタイマで最大32ビットカウントのタイマとして使用するものです。
OSStartTimer48() は、連続する3つのタイマで最大48ビットカウントのタイマとして使用するものです。
OSStartTimer64() は、全てのタイマで最大64ビットカウントのタイマとして使用するものです

id はタイマIDで以下の通りです。

16ビットタイマの場合

id 使用するタイマ
OS_TIMER_0 タイマ0
OS_TIMER_1 タイマ1
OS_TIMER_2 タイマ2
OS_TIMER_3 タイマ3


32ビットタイマの場合

id 使用するタイマ
OS_TIMER_01 タイマ0,タイマ1
OS_TIMER_12 タイマ1,タイマ2
OS_TIMER_23 タイマ2,タイマ3


48ビットタイマの場合

id 使用するタイマ
OS_TIMER_012 タイマ0,タイマ1,タイマ2
OS_TIMER_123 タイマ1,タイマ2,タイマ3


count はタイマに与えるカウントで、16ビットタイマの場合0〜0xFFFF、32ビットタイマの場合0〜0xFFFFFFFF、48ビットタイマの場合0〜0xFFFFFFFFFFFF、64ビットタイマの場合0〜0xFFFFFFFFFFFFFFFF の値を設定出来ます。

preScale はタイマがカウントアップされていくスケールを設定するパラメータで、以下の通りです。

設定値 プリスケーラ(カウントアップ間隔)
OS_TIMER_PRESCALE_1 システムクロック
OS_TIMER_PRESCALE_64 システムクロックの64分周
OS_TIMER_PRESCALE_256 システムクロックの256分周
OS_TIMER_PRESCALE_1024 システムクロックの1024分周


指定のカウント分のカウントアップが終わるとタイマ割込みが発生します。ここで注意するのは、複数のタイマを使用する場合、発生するタイマ割込みは使用するタイマのうち最も若い番号のタイマに対する割込みであるという点です。

参照

OS_StopTimer

履歴

2003/12/01 初版