16FX C_CANサンプルコードでCANメッセージの受信失敗 - KBA221416 - Community Translated (JA)

Version 1

    Community Translated by keni_4440091 Expert       Version: **

     

    Translation - English: Failure to Receive CAN Message in 16FX C_CAN Sample Code – KBA221416

     

    質問:

    16FXMB96600シリーズ)C-CANサンプルプロジェクトで、16よりも大きいMessageObjectsを使用した場合、幾つかのRXチャネルでCANメッセージは受信されません。この問題はどのように解決しますか?

     

    回答:

    MB9660シリーズC-CANサンプルコードで、メッセージバッファを通過させるために16よりも大きいMessageObjectsの数は許可されないというバグがc_can.cファイルにあります。これは結果的に失敗です。下記コードはこの問題を解決させるための例です:

     

    MB96600シリーズのC-CANサンプルコードでは、c_can.cファイルにバグがあり、16より大きいMessageObject番号をメッセージバッファーに渡すことができません。これは失敗に終わりました。次のコードは、問題を修正する例です。

     

    //MB96620 sample project, c_can.c

    Line 137: void TxRx_Judge_0(void)

                 {

                  unsigned short MsgNbr = 0x00;

                 unsigned long MsgBuffer;

     

                 MsgNbr = IO_CAN2.INTR2;               //stor MsgNbr

     

    if(   (MsgNbr>=1) && (MsgNbr<=0x20) ) // valid buffer number

                 {

             // MsgBuffer = 0x01 << (MsgNbr-1);    //Original code in sample project.

             MsgBuffer = ((unsigned long)0x01) << (MsgNbr-1);    //Modified new code.

                     …

                     }

                                }

     

    16FX製品ウェブページからMB9660シリーズサンプルコードをダウンロードできます。