#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分周 |
指定のカウント分のカウントアップが終わるとタイマ割込みが発生します。ここで注意するのは、複数のタイマを使用する場合、発生するタイマ割込みは使用するタイマのうち最も若い番号のタイマに対する割込みであるという点です。
2003/12/01 初版