📄 motmscan.h
字号:
/* motMsCan.h - definitions for the Motorola MSCAN */
/* Copyright 1984-2004 Wind River Systems, Inc. */
#include "copyright_wrs.h"
/*
modification history
--------------------
01c,25jun04,bjn Adding extern "C" for CPP.
01b,21apr04,bjn support DevIO interface
01a,23oct03,bjn written
*/
/*
DESCRIPTION
This file contains the functions declarations, specific to the
new CAN controller, that implement the interface defined
in the wnCAN.h header file.
*/
#ifndef _MOTMSCAN_H_
#define _MOTMSCAN_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*
* Max number of message objects for Motorola MSCAN
* TX = 0,1 and 2. RX = 3.
*/
#define MOTMSCAN_MAX_TX_MSG_OBJ (3)
#define MOTMSCAN_MAX_RX_MSG_OBJ (1)
#define MOTMSCAN_RX_MSG_OBJ_NUM (3)
#define MOTMSCAN_MAX_MSG_OBJ (MOTMSCAN_MAX_TX_MSG_OBJ + MOTMSCAN_MAX_RX_MSG_OBJ)
typedef struct _mscan_dev_
{
/* Configuration options, set before MOTMSCAN_Init() is called */
void * pMSCANregs;
UCHAR CANCTL0value;
UCHAR CANCTL1value;
UCHAR CANIDACvalue;
UCHAR CANRIERvalue;
int intNum;
UINT freq;
/* Global data for the MSCAN device driver */
BOOL rtr[MOTMSCAN_MAX_TX_MSG_OBJ];
UCHAR can_RIERshadow;
UCHAR tempDisableRXFIE;
WNCAN_IntType txChanInt[MOTMSCAN_MAX_TX_MSG_OBJ];
}
MSCAN_DEV;
/* Data structures for the controller */
struct MSCAN_ChannelData
{
WNCAN_ChannelMode chnMode[MOTMSCAN_MAX_MSG_OBJ];
};
/* external globals for the controller */
extern const UINT g_MSCANchnType[MOTMSCAN_MAX_MSG_OBJ];
/* external functions for the controller */
void MSCAN_registration (void);
void MSCAN_ISR (ULONG context);
/*****************************************************************************
* Register: CANCTL0
*/
#define CR0_RXFRM (0x80)
#define CR0_RXACT (0x40)
#define CR0_CSWAI (0x20)
#define CR0_SYNCH (0x10)
#define CR0_TIME (0x08)
#define CR0_WUPE (0x04)
#define CR0_SLPRQ (0x02)
#define CR0_INITRQ (0x01)
/*****************************************************************************
* Register: CANCTL1
*/
#define CR1_CANE (0x80)
#define CR1_CLKSRC (0x40)
#define CR1_LOOPB (0x20)
#define CR1_LISTEN (0x10)
#define CR1_WUPM (0x04)
#define CR1_SLPAK (0x02)
#define CR1_INITAK (0x01)
/*****************************************************************************
* Register: CANRFLG/CANRIER
*/
#define RX_WUPIE (0x80)
#define RX_CSCIE (0x40)
#define RX_RSTATE1 (0x20)
#define RX_RSTATE0 (0x10)
#define RX_TSTATE1 (0x08)
#define RX_TSTATE0 (0x04)
#define RX_OVRIE (0x02)
#define RX_RXFIE (0x01)
#define RX_RX_STATUS_CHANGE_0_ENB (0x00<<4)
#define RX_RX_STATUS_CHANGE_1_ENB (0x01<<4)
#define RX_RX_STATUS_CHANGE_2_ENB (0x02<<4)
#define RX_RX_STATUS_CHANGE_3_ENB (0x03<<4)
#define RX_TX_STATUS_CHANGE_0_ENB (0x00<<2)
#define RX_TX_STATUS_CHANGE_1_ENB (0x01<<2)
#define RX_TX_STATUS_CHANGE_2_ENB (0x02<<2)
#define RX_TX_STATUS_CHANGE_3_ENB (0x03<<2)
#define RSTATE_BITS (0x30)
#define TSTATE_BITS (0x0C)
/*****************************************************************************
* Register: CANBTR0
*/
#define BTR0_BRP_BITS (0x3f)
#define BTR0_SJW_BS (6)
/*****************************************************************************
* Register: CANBTR1
*/
#define BTR1_TSEG1_BITS (0x0f)
#define BTR1_TSEG2_BITS (0x70)
#define BTR1_TSEG2_BS (4)
#define BTR1_SAMP_BS (7)
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _MOTMSCAN_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -