www.pudn.com > SCIB_RS232.rar > eCAN_RX.c


//************************************************************************************** 
//eCAN Receive 
//**************************************************************************************                                                              
#include "DSP281x_Device.h" 
#include "DSP281x_Examples.h" 
 
 
void eCAN_RX(void) 
	{ 
    	 
    	long RxCount=0; 
    	struct ECAN_REGS ECanaShadow ;    
    	InitECan(); 
    	EALLOW ; 
		//Write MSGID Area 
    	ECanaMboxes.MBOX0.MID.all  = 0x80040000 ; //Extended Flag 
    	ECanaMboxes.MBOX1.MID.all  = 0x80080000 ; 
    	ECanaMboxes.MBOX2.MID.all  = 0x800C0000 ; 
    	ECanaMboxes.MBOX3.MID.all  = 0x80100000 ; 
    	ECanaMboxes.MBOX4.MID.all  = 0x80140000 ; 
    	ECanaMboxes.MBOX5.MID.all  = 0x80180000 ; 
    	ECanaMboxes.MBOX6.MID.all  = 0x801C0000 ; 
    	ECanaMboxes.MBOX7.MID.all  = 0x80200000 ; 
    	ECanaMboxes.MBOX8.MID.all  = 0x80240000 ; 
    	ECanaMboxes.MBOX9.MID.all  = 0x80400000 ; 
    	ECanaMboxes.MBOX10.MID.all = 0x80440000 ; 
    	ECanaMboxes.MBOX11.MID.all = 0x80480000 ; 
    	ECanaMboxes.MBOX12.MID.all = 0x804C0000 ; 
    	ECanaMboxes.MBOX13.MID.all = 0x80500000 ; 
    	ECanaMboxes.MBOX14.MID.all = 0x80540000 ; 
    	ECanaMboxes.MBOX15.MID.all = 0x80580000 ; 
    	ECanaMboxes.MBOX16.MID.all = 0x805C0000 ; 
    	ECanaMboxes.MBOX17.MID.all = 0x80600000 ; 
    	ECanaMboxes.MBOX18.MID.all = 0x80640000 ; 
    	ECanaMboxes.MBOX19.MID.all = 0x80680000 ; 
    	ECanaMboxes.MBOX20.MID.all = 0x806C0000 ; 
    	ECanaMboxes.MBOX21.MID.all = 0x80800000 ; 
    	ECanaMboxes.MBOX22.MID.all = 0x80840000 ; 
    	ECanaMboxes.MBOX23.MID.all = 0x80880000 ; 
    	ECanaMboxes.MBOX24.MID.all = 0x808C0000 ; 
    	ECanaMboxes.MBOX25.MID.all = 0x80900000 ; 
    	ECanaMboxes.MBOX26.MID.all = 0x80940000 ; 
    	ECanaMboxes.MBOX27.MID.all = 0x80980000 ; 
    	ECanaMboxes.MBOX28.MID.all = 0x809C0000 ; 
    	ECanaMboxes.MBOX29.MID.all = 0x80A00000 ; 
    	ECanaMboxes.MBOX30.MID.all = 0x80A40000 ; 
    	ECanaMboxes.MBOX31.MID.all = 0x80AC0000 ; 
    	/* 
    	LAM_REGS.LAM0.all = 0x80000000 ; 
    	LAM_REGS.LAM1.all = 0x80000000 ; 
    	LAM_REGS.LAM2.all = 0x80000000 ; 
    	LAM_REGS.LAM3.all = 0x80000000 ; 
    	LAM_REGS.LAM4.all = 0x80000000 ; 
    	LAM_REGS.LAM5.all = 0x80000000 ; 
    	LAM_REGS.LAM6.all = 0x80000000 ; 
    	LAM_REGS.LAM7.all = 0x80000000 ; 
    	LAM_REGS.LAM8.all = 0x80000000 ; 
    	LAM_REGS.LAM9.all = 0x80000000 ; 
    	LAM_REGS.LAM10.all = 0x80000000 ; 
    	LAM_REGS.LAM11.all = 0x80000000 ; 
    	LAM_REGS.LAM12.all = 0x80000000 ; 
    	LAM_REGS.LAM13.all = 0x80000000 ; 
    	LAM_REGS.LAM14.all = 0x80000000 ; 
    	LAM_REGS.LAM15.all = 0x80000000 ; 
    	LAM_REGS.LAM16.all = 0x80000000 ; 
    	LAM_REGS.LAM17.all = 0x80000000 ; 
    	LAM_REGS.LAM18.all = 0x80000000 ; 
    	LAM_REGS.LAM19.all = 0x80000000 ; 
    	LAM_REGS.LAM20.all = 0x80000000 ; 
    	LAM_REGS.LAM21.all = 0x80000000 ; 
    	LAM_REGS.LAM22.all = 0x80000000 ; 
    	LAM_REGS.LAM23.all = 0x80000000 ; 
    	LAM_REGS.LAM24.all = 0x80000000 ; 
    	LAM_REGS.LAM25.all = 0x80000000 ; 
    	LAM_REGS.LAM26.all = 0x80000000 ; 
    	LAM_REGS.LAM27.all = 0x80000000 ; 
    	LAM_REGS.LAM28.all = 0x80000000 ; 
    	LAM_REGS.LAM29.all = 0x80000000 ; 
    	LAM_REGS.LAM30.all = 0x80000000 ; 
    	LAM_REGS.LAM31.all = 0x80000000 ;*/ 
    	 
    	ECanaRegs.CANOPC.all = 0xFFFFFFFF ;    //Not allow overwrite 
    	 
    	 
    	 
    	 
    	//Config All MailBox As Send MailBox 
    	ECanaShadow.CANMD.all = ECanaRegs.CANMD.all ; 
    	ECanaShadow.CANMD.all = 0xFFFFFFFF ; 
    	ECanaRegs.CANMD.all = ECanaShadow.CANMD.all ;   
    	//Mask MailBox5 Interaput 
    	ECanaRegs.CANMIM.bit.MIM5 = 0 ; 
    	//MailBox5 int Level 
    	ECanaRegs.CANMIL.bit.MIL5 = 0 ; 
    	 
       	//Enable Mailbox 
    	ECanaShadow.CANME.all = ECanaRegs.CANME.all ; 
    	ECanaShadow.CANME.all= 0xFFFFFFFF ; 
    	ECanaRegs.CANME.all = ECanaShadow.CANME.all ; 
    	EDIS ; 
    	 
    	//Start Receive 
    	while(1) 
    	{ 
    		 
    		while(ECanaRegs.CANRMP.all != 0xFFFFFFFF){}  //Wait Set RMP 
    		ECanaRegs.CANRMP.all = 0xFFFFFFFF ; 
    		RxCount++ ; 
    		 
    	}	 
    		 
    		 
    	 
    }