(toppers-users 1864) Re: H8/3048Fでの割り込みハンドラ利用手順に関する質問です.

oohashi oohashi @ tms-ltd.co.jp
2005年 1月 31日 (月) 19:41:11 JST


東京マイクロシステムの大箸と申します。

プログラムを見ていて1点気づいたことがあります。
imia2_handler_disable_intですが、

> /* ITU2   */
> .globl _imia2_handler_disable_int
> _imia2_handler_disable_int:
> mov.l #0xFF7B, er0    /*ITU2用IMFAフラグのクリア*/
> bclr #0, @er0
> rts
> 以上を自力で付加.

この部分なのでございますが、IMFAのフラグは1度読み込んで
クリアしないと、正しくクリアされません。
BCLRでは読み込みませんので、クリアされていないのだと思います。
H8/3048Fハードウェアマニュアル(文書番号ADJ-602-093F)の
16 ビットインテグレーテッドタイマユニットの項を見ていただければ
そのことが書いてあります。

ITUによるインターバルタイマーはIMFAフラグのクリアをしないと
RTEしたあとにすぐ割り込みがかかってきてしまいます。
そのため、使い始めるときも、TCNTをクリアしたときにIMFAも1回読み込んで
クリアし、割り込みルーチンの最後でIMFAを読み込んでクリアが必要かと思います。


ぜんぜん見当はずれのことかもしれませんが、その際にはご容赦ください。


------------------------------------
(有)東京マイクロシステム

  システム開発部
   大箸 隆久

〒120-0036
 東京都足立区千住仲町18−11−4F
                 
TEL 03-3888-6281(代表)
FAX 03-3888-6388
HP:http://www.tms-ltd.co.jp/
mail oohashi @ tms-ltd.co.jp
------------------------------------