[H8-ML(2579)] Re: 多重割り込みが上手くいきませんが..?
From: hamayan <hamayan@xxxxxxxxxxxxxxxx>
Date: 2002年12月17日(火)00時08分00秒
hamayan です。

Kosaka> (CCRのIをクリアしてからIMFAをクリアの手順)
Kosaka> これは手順が逆です。

この現象を、秋月三岩さんボードで、下記の様なコードで確認しました。

;割り込み処理
IntItu0:
		push.l	er0
		push.l	er1
;割り込みを許可する
		andc.b	#h'7f,CCR			;interrupt mask reset
;		bclr	IMIFA0				;割り込み条件のクリア
		mov.w	@IntCount,r1	;itu0、10ms周期の割り込み数を数えている。
		add.w	#1,r1
		cmp.w	#25,r1				;250ms周期
		bne		escape
		mov.w	#0,r1
		mov.b	#h'48,r0l			;文字'H'を出力
		jsr		@_Putc
escape:
		mov.w	r1,@IntCount
		bclr	IMIFA0				;割り込み条件のクリア
		pop.l	er1
		pop.l	er0
		rte

初期化や、一部のプログラムは、省いています。
andcを使ったIビットのクリアの前に、コメントを付けたり、外したり、
IMIFA0のクリアの場所を色々変えてみたりしました。
面白いのは、Iビットのクリア直後にIMIFA0のクリアを行うと、動いち
ゃったりします。
但し、正常時の倍位の頻度で、文字を出力してきます。今自宅で作業をし
ていて、シンクロが無いので感です。bclr IMIFA0を実行してから、割り
込みを受け付けているのだと思います。<−こんな使い方も有りだったりして。

今回のスレッドのおかげで、今までなんとなく、でやってきたグレーゾーン
が、少しクリアになって来ました。
スレッド概略
[表示中](起点)
 └[2580(1)]


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


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