こんにちは ご回答ありがとうございます。大変助かります。 早速試させて頂きました。 ...しかし、状況は変わらないようです。 I/Oポートに割り込み処理の最初と最後に1/0を出力するようにして、オシロで確認し ました。 最初の5msecの割り込み処理中に、0.1msecの割り込みが入ると0.1msec割 り込み終了後元の5msecのプログラムに戻っていないようです。 それでも0.1msecの 割り込みは続いています。 感ですが、何かスタックがおかしくなったようです。 また、5msecの割り込み終了前に 割り込み禁止を入れてみましたが、結果は×でし た。 ん....何がおかしいのでしょうか? よくわかりませ〜〜ん。 void int_imia0(void) /* 0.1msec interrupt */ { ... /* current control program. */ ... if(ITU0.TSR.BIT.IMFA==1) ITU0.TSR.BIT.IMFA=0; } void int_imia1(void) /* 5msec interrupt */ { EI; /* not work ? */ ... /* velocity control program. */ ... DI /* improvement!, but not still work */ if((ITU1.TSR.BIT.IMFA) ITU1.TSR.BIT.IMFA=0; } on 02.12.11 10:13 PM, Takao Furumori at ta_ka@xxxxxxxxxxxxxxxx wrote: > こんにちは。 > > CPUはH8/3048ですか? > その場合、割り込み終了時の割り込みフラグのクリアーは >> ITU0.TSR.BIT.IMFA=0; > ではなくて > if( ITU0.TSR.BIT.IMFA == 1) ITU0.TSR.BIT.IMFA = 0; > っと一度、空読みしなければ割り込みフラグをクリアー出来なかったと思います。