16FX C_CANサンプルコードでCANメッセージの受信失敗 - KBA221416 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by keni_4440091 Version: **
Translation - English: Failure to Receive CAN Message in 16FX C_CAN Sample Code – KBA221416
質問:
16FX(MB96600シリーズ)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シリーズサンプルコードをダウンロードできます。