System 0x20
タイマ開始
【機能】
1msタイマのカウントを開始します。
【関数】
int TmStart( void )
|
{
|
return trapa_svc( 0x20, pid );
|
}
|
【入力】
なし
【出力】
リターンコード
| 0〜31
| タイマ番号
|
| ERR_MEMOVER
| タイマ番号の空きなし
|
| (ERR_PID
| 不正プロセスID)
|
【解説】
本装置は内部に32個の独立したタイマカウンタを持ちます。
本ファンクションにより、現在使用されていないタイマカウンタのカウンタを0から開始し、そのタイマ番号を返します。
タイマカウンタの現在値は「タイマ取得」ファンクションで取得できます。
タイマカウンタは1ms毎のタイマ割込みによって更新されます。
1カウントは1msですが、「タイマ開始」ファンクションおよび「タイマ取得」ファンクションを呼び出すタイミングと、タイマ割込みのタイミングによっては実時間との差が±1ms程度出る場合があります。
タイマカウンタの最大値は約49日(4,294,967,259カウント)で、最大値を超えると0に戻ります。
【関連項目】
タイマ取得 タイマ停止
【使用例】
以下の関数は約10msウェイトします。
void wait10ms(void)
{
int tmno;
unsigned int tmval;
tmno = TmStart( );
for(tmval = 0; tmval < 10 ; ) {
TmGet(tmno, &tmval );
}
TmStop(tmno);
}