📄 mscan.c
字号:
/*****************************************************
MSCAN.c - initialization of CAN modules
----------------------------------------------------
*****************************************************/
#include "hidef.h" /* this file declares symbols user by the CodeWarrior environment */
#include "VTypes.h"
#include "XDP512Regs.h"
#include "Globals.h"
#include "MSCAN.h"
/*************************************************************************************/
void MSCANInit(void)
{
/* Variable Declarations */
/* Begin Function MSCANInit() */
RegBase->CAN1.CTL1 = CANE; /* enable the CAN module */
RegBase->CAN1.BTR0 = 0xc0; /* sync jump width = 4 Tq; prescaler = /1 */
RegBase->CAN1.BTR1 = 0x3a; /* TSEG2 = 3 (4); TSEG1 = 10 (11) */
RegBase->CAN1.IDAC = 0x10; /* 4 16-bit filters */
RegBase->CAN1.IDMR0 = 0xff; /* allow all messages to pass */
RegBase->CAN1.IDMR1 = 0xff;
RegBase->CAN1.IDMR2 = 0xff;
RegBase->CAN1.IDMR3 = 0xff;
RegBase->CAN1.IDMR4 = 0xff;
RegBase->CAN1.IDMR5 = 0xff;
RegBase->CAN1.IDMR6 = 0xff;
RegBase->CAN1.IDMR7 = 0xff;
RegBase->CAN1.CTL0 = 0; /* clocked in Wait mode, timer disabled, wake-up disabled */
while ((RegBase->CAN1.CTL1 & INITAK) != 0)
;
RegBase->CAN1.RIER = RXFIE; /* enable receive interrupts */
RegBase->CAN1.TIER = 0x00; /* no Xmit buffer empty interrupts */
RegBase->CAN2.CTL1 = CANE; /* enable the CAN module */
RegBase->CAN2.BTR0 = 0xc0; /* sync jump width = 4 Tq; prescaler = /1 */
RegBase->CAN2.BTR1 = 0x3a; /* TSEG2 = 3 (4); TSEG1 = 10 (11) */
RegBase->CAN2.IDAC = 0x10; /* 4 16-bit filters */
RegBase->CAN2.IDMR0 = 0xff; /* allow all messages to pass */
RegBase->CAN2.IDMR1 = 0xff;
RegBase->CAN2.IDMR2 = 0xff;
RegBase->CAN2.IDMR3 = 0xff;
RegBase->CAN2.IDMR4 = 0xff;
RegBase->CAN2.IDMR5 = 0xff;
RegBase->CAN2.IDMR6 = 0xff;
RegBase->CAN2.IDMR7 = 0xff;
RegBase->CAN2.RIER = 0x00; /* we're only transmitting on CAN2 */
while ((RegBase->CAN1.CTL1 & INITAK) != 0)
;
RegBase->CAN2.TIER = 0x00; /* no Xmit buffer empty interrupts */
RegBase->CAN2.CTL0 = 0; /* clocked in Wait mode, timer disabled, wake-up disabled */
CANMsgData[0] = 0; /* init our single byte message to 0 */
CANMsgID = 0; /* init the message ID to 0 */
CANDataLen = 1; /* send single byte messages */
} /* end MSCANInit */
/*************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -