[H8-ML(2546)] Re: 多重割り込みが上手くいきませんが..?
From: Shinya HARAMAKI <haramaki@xxxxxxxxxxxxxxxx>
Date: 2002年12月12日(木)09時16分05秒
こんにちは

ご回答ありがとうございます。大変助かります。

早速試させて頂きました。 ...しかし、状況は変わらないようです。

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;
> っと一度、空読みしなければ割り込みフラグをクリアー出来なかったと思います。

スレッド概略
[2526(R)](起点)
 └[2545(U)]
   └[表示中]
     ├[2548(1)]
     └[2549(2)]


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


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