[H8-ML(4316)] RE:Message for h8
From: "masanobu suzuki" <signas@xxxxxxxxxxxxxxx>
Date: 2004年01月19日(月)11時40分32秒
>ところで、上の文章の意味を良く理解できませんでした。割り
>込みするのに一つ足りないものがあるということぐらいはわか
>りましたが...

マニュアル「5.割り込みコントローラ」頁5-2のブロック図を参照して
いただけると良いと思いますが、左側のOVFとかADIなどが、内部
割り込み要因(信号)です。図では省略されていますが、今回のITU
の割り込み要因もここに繋がれています。

ブロック図を見ると判りますが、割り込み要因は直接CPUに繋がれて
いる訳ではなく、割り込みコントローラを介してCPUに繋がっています。
割り込みコントローラは、複数の割り込み要因の優先順位等を判定し
てCPUへ割り込み要求を行いますが、同時にそれがなんの割り込み
かを割り込みベクタ番号(頁5-16参照)としてCPUに通知します。

一方CCRレジスタには、CPUがこの割り込みを受け付けるかどうかを
決める割り込みマスクbit7があり、このbitをゼロに落とすことでCPUは
割り込みを受け付け、該当のベクタアドレスに飛ぶことができるように
なります。このbitは、リセット直後は1にマスクされていますから、プロ
グラム側でマスクを解除します。(1→0)
但し、NMI割り込みはマスクすることはできません。

H8は、実際にはもう少し柔軟な割り込みの設定ができるのですが、
最初はCCRレジスタのbit7をゼロに落とすことで全く問題なく割り込み
処理を行うことができます。

> CCRレジスタによる割り込み許可をCでどう
> 記述すればいいかの例を含めて詳しく説明していただけますか

このbitをゼロにする方法として、Cの関数として記述する方法もあります
が、Cコンパイラがインラインアセンブラの記述が可能なら、例えば、
 _asm LDC.B #H'00, CCR			// 割り込み許可
の一行ですませてもOKです。(イエローソフトの場合)

鈴木(正)
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.563 / Virus Database: 355 - Release Date: 2004/01/17

スレッド概略
[4293(R)](起点)
 └[4314(U)]
   └[表示中]
     └[4319(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]