Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

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

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

GeethaP_31
Employee
Employee
50 questions asked 10 questions asked 5 questions asked

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シリーズサンプルコードをダウンロードできます。

0 件の賞賛
128 件の閲覧回数
寄稿者