Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
keni_4440091
Level 7
Level 7
500 replies posted 100 solutions authored 50 solutions authored

Hi

I want to translate KBA221416, please confirm to my work.

Regards,

Nino

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi, Nino-san

Confirm your work to this KBA.

Thanks

Jenna

Jenna Jo
0 Likes

タイトル:16FX C_CANサンプルコードでCANメッセージの受信失敗 KBA221416

バージョン 1

chaitanyav_41 2017/10/19 21:50 に作成。chaitanyav_41 2017/10/19 21:50 に変更。

Version: **

質問:

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

141 閲覧 カテゴリ: MCU & PSoC: Auto MCU   タグ: can, 16fx, message object

0 Likes