[H8-ML(2127)] IRQ割り込みについて
From: "Norio Onda" <n.onda@xxxxxxxxxxxxxxxxxxx>
Date: 2002年08月07日(水)18時07分40秒
みなさん始めまして。恩田です。
初歩的な質問で恐縮なのですが、H8S/2144のIRQ0割り込みを使用していて
疑問に思う点があります。

IRQ0割り込みは、エッジ/レベル検出回路→IRQ0Fレジスタ→AND(IRQ0Eでマスク)
を経てIRQ0割り込み要求となるのですが、この構成だと、IRQ0Eをイネーブルにする以前でも
IRQ0の入力があれば、IRQ0Fレジスタがセットされてしまいます。

そこで、IRQ0FレジスタをリセットすべくISRレジスタのIRQ0に該当するフラグをリセットしてみた
のですが、IRQ0Eをイネーブにし、CCRの割り込みマスクフラグをリセットし割り込みを許可すると
どうしても割り込みがかかってしまいます。(この時、ISRレジスタをリセットする以前にIRQ0の
入力を変化(立ち上がり)させ、その後Hレベルに固定しています。)

IRQ0Fレジスタをリセットする方法が間違っているのでしょうか?

すみませんが、ご教授の程よろしくお願いします。


プログラムの抜粋
DEFINE	IER	(H'FFFFC2)
DEFINE	ISCRH	(H'FFFEEC)
DEFINE	ISCRL 	(H'FFFEED)
DEFINE	ISR     (H'FFFEEB)	;IRQステータスレジスタ
省略
	MOV.B	#H'03,R0L	;IRQ0,IRQ1許可
	MOV.L	#IER,ER3	;IER IRQイネーブルレジスタ
	MOV.B	R0L,@ER3
	MOV.B	#H'00,R0L	;
	MOV.L	#ISCRH,ER3	;ISCRH IRQセンスコントロールレジスタ
	MOV.B	R0L,@ER3
	MOV.B	#H'02,R0L	;Hエッジ
	MOV.L	#ISCRL,ER3	;ISCRL IRQセンスコントロールレジスタ
	MOV.B	R0L,@ER3
省略
	MOV.B	#H'00,R0L	;0→COUNT
	MOV.L	#ISR,ER3
	MOV.B	R0L,@ER3	;0→ISR
	ANDC	#H'7F,CCR	;
LOOP:	NOP
	BRA	LOOP

-----------------------------
恩田紀雄
n.onda@xxxxxxxxxxxxxxxxxxx
スレッド概略
[表示中](起点)
 └[2128(1)]


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


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