RX65 SCI 割り込みについて

お世話になります。

現在RX651を使用して調歩同期シリアル通信を挑戦しています。

割込みを使用しないで送受信できることは確認しました。

そこから割込みを使用した送受信を試みてるのですが、

割込み処理の関数内でブレークポイントを作っても引っ掛かりません。

何か設定し忘れているビットはありますでしょうか。

下記はinitialで設定しています。

SCI1.SCR.BIT.TIE = 1; // TXI割込み要求を許可
SCI1.SCR.BIT.RIE = 1; // RXI ERI割込み要求を許可
SCI1.SCR.BIT.TE = 1; // シリアル送信動作を許可
SCI1.SCR.BIT.RE = 1; // シリアル受信動作を許可

IPR(SCI1,RXI1) = 15; // 受信割込み優先度
IPR(SCI1,TXI1) = 15; // 送信割込み優先度

IR(SCI1,RXI1) = 0; // 受信割込み要求クリア
IR(SCI1,TXI1) = 0; // 送信割込み要求クリア

IEN(SCI1,RXI1) = 1; // 割り込みを許可
IEN(SCI1,TXI1) = 1; // 割り込みを許可

ご教授よろしくお願いいたします。

  • まず、プロセッサステータスワード(PSW)のiビットで、全体の割り込みが許可されているか確認してください。通常はコンパイラで用意されている組み込み関数で許可する必要があります。

  • ありがとうございます。

    プロジェクト作成時に作成されるrestprog.c内の

    下記記述にてPSW.Iビットは1にされてると思っていたのですが、

    別途、setpsw_i();にてPSWのiビットを1にする必要があるのでしょうか。

    #define PSW_init       0x00010000 // PSW bit pattern (b16 : i 割り込み許可ビット)

    set_psw(PSW_init);

    よろしくお願いいたします。

  • こんにちはNAKAといいます。

    RX651とRX65Nで違いがあるかもしれませんが、グループBL0割り込み要求レジスタの設定はないのでしょうか?

    こんな感じ

        IEN(SCI2,TXI2) = 1;
        IEN(SCI2,RXI2) = 1;
      ICU.GENBL0.BIT.EN4 = 1;  //グループBL0割り込み
        ICU.GENBL0.BIT.EN5 = 1;   //グループBL0割り込み

    確認ください。