📄 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++ ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -