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

📄 mscan.h

📁 CAN Example(MC9S12XDP512)
💻 H
字号:
//////////////////////////////////////////////////////////////////////////////
//
// Sample for SofTec Microsystems SK-S12XDP512-A Starter Kit
// (Freescale code: EVB9S12XDP512)
//
// ---------------------------------------------------------------------------
//
// Copyright (c) 2005 SofTec Microsystems
// http://www.softecmicro.com/
//
//////////////////////////////////////////////////////////////////////////////

#include <hidef.h>

//////////////////////////////////////////////////////////////////////////////
// Defines
//////////////////////////////////////////////////////////////////////////////

#define MAX_TX_BUFFERS      3
#define MAX_RX_BUFFERS      5

#define MaskOR(A)           (0x01<<A)

#define MSCAN_0             0
#define MSCAN_1             1
#define MSCAN_2             2
#define MSCAN_3             3
#define MSCAN_4             4

#define CANCTL0             0x00
#define CANCTL0_INITRQ_MASK 0x01
#define CANCTL0_SYNCH_MASK  0x10

#define CANCTL1             0x01
#define CANCTL1_INITAK_MASK 0x01

#define CANBTR0             0x02
#define CANBTR1             0x03
#define CANRFLG             0x04
#define CANRFLG_RXF_MASK    0x01

#define CANRIER             0x05
#define CANTFLG             0x06
#define CANTIER             0x07
#define CANTARQ             0x08
#define CANTAAK             0x09
#define CANTBSEL            0x0A
#define CANIDAC             0x0B
#define CANMISC             0x0D
#define CANRXERR            0x0E
#define CANTXERR            0x0F
#define CANIDAR_1B          0x10    // First bank: 4 registers
#define CANIDMR_1B          0x14    // First bank: 4 registers
#define CANIDAR_2B          0x18    // Second bank: 4 registers
#define CANIDMR_2B          0x1C    // Second bank: 4 registers
#define CANRXIDR            0x20    // 4 registers
#define CANRXDSR            0x24    // 8 registers
#define CANRXDLR            0x2C
//#define TBPR              0x2D    // Not available for receive buffers
#define CANRXTSRH           0x2E
#define CANRXTSRL           0x2F
#define CANTXIDR            0x30    // 4 registers
#define CANTXDSR            0x34    // 8 registers
#define CANTXDLR            0x3C
#define CANTXTBPR           0x3D
#define CANTXTSRH           0x3E
#define CANTXTSRL           0x3F

struct can_msg {
    unsigned int id;
    Bool RTR;
    unsigned char data[8];
    unsigned char len;
    unsigned char prty;
};

//////////////////////////////////////////////////////////////////////////////
// Functions
//////////////////////////////////////////////////////////////////////////////

void MSCANInit(unsigned char can_num);
Bool MSCANSendMsg(unsigned char can_num, struct can_msg msg);
Bool MSCANGetMsg(unsigned char can_num, struct can_msg *msg);
Bool MSCANCheckRcvdMsg(unsigned char can_num);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -