【ONTMマクロ命令の機能】
・ONTMマクロ命令は、発行元タスクを指定した時間だけ待ち合わせ
るためのマクロ命令で、ハードウェアタイマにより時間が設定される。
・ONTMマクロはPICROS内部のスケジューラに戻り、発行元には戻ら
ないので、次の処理を続けて書くことは出来ません。
そこで次の処理は、別のStageを使って書くことになります。
ONTMマクロ内では、自動的にStageが+1されるので、タイムアップ
時点では、次のStageに進むようになります。
・パラメータには待ち合わせ時間を指定します。単位は10msecとなって
います。パラメータは1バイトとなっていますので、最大2560msecの
待ち合わせ時間となります。
【ONTMマクロ命令の使い方】
ONTMマクロ命令はこれを実行したタスクには戻らないので、タスク側
はマクロ命令の後に続けて別の処理を書くことが出来ません。
【Calling Sequence】
ONTMマクロの呼び出し方は下記。
BCF INTCON,GIE ;割り込み禁止
MOVLW timer ;時間設定データ
CLRF PCLATH ;Bnak0指定
GOTO NEXT ;NEXTマクロ呼び出し
【タイマー割込み処理内容】
・タイマーはインターバルタイマとして動作し、約10msec毎の割込みが
かけられる。
・このタイマ割込み毎に、全タスクのTCT(Task Control Table)でタスクの
状態を調べ、TIMER WAIT中のタスクについて、そのパラメータにある
タイマ値を1づつ減算する。
・もし、減算結果がゼロになったら、そのタスクのタイマ待ち合わせ時間が
完了したわけなので、タスクのTIMER WAITフラグを解除し実行可能
状態にする。
・全タスクの調査が終了したら割込み処理完了で割込みが入ったところ
に割込み許可リターンで戻る。
・現在実行中のタスクが終了した時点でPICROSのスケジューラに戻るの
で、その後タイマ待ち解除されたタスクが実行されることになる。