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);
 }