- 締切済み
H8/OSを用いた割り込みで困っています。
SH2-7045Fを用いて、MTUのTGRAとTNCTのコンペアマッチで割り込みを発生させたいのですが、かなり困っています。まず、MTUのTGRAの割り込みが発生したときの、割り込み関数の割り込み定義を、H8/OSにかいてあった、int_registでやっているのですが、これでいいのですか?あと、開発環境は、秋月でSH2を買ったときについてくるgccを使っていいるのですが、この中には割り込みマスクの設定の関数がないというのを知り、適当にインターネットから拾ったアセンブリ言語で書かれたようなもの(setIntmask())を書いているのですが、プログラムを動かしたとき割り込みを1度しか受け付けないでプログラムがおわらないで、なにかしています。教えてくださいお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- R32C
- ベストアンサー率39% (115/290)
回答No.1
H8/OS と GDL(gcc developer Lite)など、割り込み関係は 流儀がちがう(という表現が適切かどうか不明)ようで、 どちらかの流儀に従って作ることが必要かもしれませんね。 GDLでは、割り込みハンドラは普通のCの関数で書けますが、 そうでない場合は、割り込みハンドラ特有の記述(たいした記述 ではないですが)を書く必要がありますよね。 その辺はどうでしょうか? 若干気になったのは、setIntmask()を拾ってきて書いたようですが、 環境によって問題ないのかもしれませんが、たまたまぐぐって見つかった setIntmask()は、若干問題があるように思いました。 以下のSetSRRegは問題ないように思います。 http://www2s.biglobe.ne.jp/~NAOTO/acs/sh2/sh2c/sh2r1.h