📄 dborx.c
字号:
/*********************************************************************
* Filename: DBORX.c
*
* Description: Illustrates the operation of DBO field for a Receive mailbox.
* Mailbox 11 is used in this example.
*
* Last update: 12/24/2002
*********************************************************************/
#include "DSP28_Device.h"
long i;
void InitECan(void);
main()
{
/* Create a shadow register structure for the CAN control registers. This is
needed, since, only 32-bit access is allowed to these registers. 16-bit access
to these registers could potentially corrupt the register contents. This is
especially true while writing to a bit (or group of bits) among bits 16 - 31 */
struct ECAN_REGS ECanaShadow;
/* Initialize the CAN module */
InitECan();
/* Write to the MSGID field */
ECanaMboxes.MBOX11.MSGID.all = 0x00440000; // Std Identifier (ID = 11)
/* Configure Mailbox under test as a Receive mailbox */
ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;
ECanaShadow.CANMD.bit.MD11 = 1;
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
/* Enable Mailbox under test */
ECanaShadow.CANME.all = ECanaRegs.CANME.all;
ECanaShadow.CANME.bit.ME11 = 1;
ECanaRegs.CANME.all = ECanaShadow.CANME.all;
/* Configure DBO bit */
ECanaRegs.CANMC.bit.DBO = 1;
/* Begin Receiving */
while(1)
{
while(ECanaRegs.CANRMP.bit.RMP11 == 0 ) {} // Wait for RMP11 bit to be set..
ECanaShadow.CANRMP.all = 0; // See Note 1
ECanaShadow.CANRMP.bit.RMP11 = 1; // Clear RMP11
ECanaRegs.CANRMP.all = ECanaShadow.CANRMP.all;
}
}
/*
Note 1: Initialize the "shadow-RMP" register to zero before setting any bit(s)
in order to clear it (them) in the RMP register. Otherwise, some other RMPn bit(s)
that is (are) set could be inadvertently cleared.
Note 2: Following is the effect of DBO bit
Let CANalyzer transmit the following bytes in the sequence indicated:
01 02 03 04 05 06 07 08
When DBO = 1, the mailbox RAM contents be as follows...
615C: 0201
615D: 0403
615E: 0605
615F: 0807
When DBO = 0, the mailbox RAM contents be as follows...
615C: 0304
615D: 0102
615E: 0708
615F: 0506
Use DBORX.cfg from CANalyzer.
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -