⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dborx.c

📁 2812的CAN通讯源代码,需要的朋友请下载试用
💻 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 + -