タイマRB割り込みにかかわらず、割り込みプログラムを作るには次のステップが必要
今回は最後、いよいよ割り込み関数の実装について解説。
※ちなみに一般的に割り込み要因の準備→割り込みの実装→割り込みの登録の順番に作業をするので
多分順番違ってます。
タイマRBを用いた割り込み制御でよくやるのは や など
(イベントの監視とは例えば、ボタンが押されているかを見るなど。)
・時間計測
とするだけで時間が計測できる。
long long cnt_rb=0;
#pragma interrupt intTRB(vect=24)
void intTRB(void){
cnt_rb++;
}
割り込みが許可されてから
(秒)時間が経過したことが分かる。
例えばintTRBの周期が1msでcnt_rbが1000だった場合、1秒経ったというわけである。
これを利用して
とすることができる。cnt_rbはメイン処理とは別にずっと増えていくため、
void timer(int time){
cnt_rb = 0;
while(cnt_rb < time);
}
一定時間後cnt_rb >= time となり終了する。そして、whileが待っている間メイン処理はそれ以外なにも実行されない。
つまりtimer関数は、一定時間メイン処理を停止させる関数となる