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

📄 mcp2515.h

📁 基于CAN总线的 温度采集方法。选用DS18B20温度传感器。
💻 H
字号:
/****************************************************************************/
/*	Purpose:	Register definition for the MCP2510/MCP2515 CAN Controller	*/
/*	Version:	1.0															*/
/*	Author:		Yangrufeng														*/
/*	Date:		4.6.2005													*/
/*	www:		www.microcontroller-starterkits.de							*/
/*	email:																	*/
/*	Software:	ICCAVR											*/
/*	Hardware:	ATMega16											*/
/****************************************************************************/

/******************	Port defintions ATMega128Evoboard ***********************/

#define HW_SPI		PORTB
#define DDR_SPI		DDRB
#define	CS_CAN		2   

/******************	SPI values **********************************************/

#define	WRITE_MCP	0x02
#define	READ_MCP	0x03
#define	RESET_MCP	0xC0
#define	RTS			0x80
#define	READ_STAT	0xA0
#define	BIT_MODIFY	0x05

/******************	Register ************************************************/

#define RXF0SIDH	0x00
#define RXF0SIDL	0x01
#define RXF0EID8	0x02
#define RXF0EID0	0x03
#define RXF1SIDH	0x04
#define RXF1SIDL	0x05
#define RXF1EID8	0x06
#define RXF1EID0	0x07
#define RXF2SIDH	0x08
#define RXF2SIDL	0x09
#define RXF2EID8	0x0A
#define RXF2EID0	0x0B
#define BFPCTRL		0x0C
#define TXRTSCTRL	0x0D
#define CANSTAT		0x0E
#define CANCTRL		0x0F

#define RXF3SIDH	0x10
#define RXF3SIDL	0x11
#define RXF3EID8	0x12
#define RXF3EID0	0x13
#define RXF4SIDH	0x14
#define RXF4SIDL	0x15
#define RXF4EID8	0x16
#define RXF4EID0	0x17
#define RXF5SIDH	0x18
#define RXF5SIDL	0x19
#define RXF5EID8	0x1A
#define RXF5EID0	0x1B
#define TEC			0x1C
#define REC			0x1D

#define RXM0SIDH	0x20
#define RXM0SIDL	0x21
#define RXM0EID8	0x22
#define RXM0EID0	0x23
#define RXM1SIDH	0x24
#define RXM1SIDL	0x25
#define	RXM1EID8	0x26
#define RXM1EID0	0x27
#define CNF3		0x28
#define CNF2		0x29
#define CNF1		0x2A
#define CANINTE		0x2B
#define CANINTF		0x2C
#define EFLG		0x2D

#define	TXB0CTRL	0x30
#define	TXB0SIDH	0x31
#define TXB0SIDL	0x32
#define TXB0EID8	0x33
#define TXB0EID0	0x34
#define TXB0DLC		0x35
#define TXB0D0		0x36
#define TXB0D1		0x37
#define TXB0D2		0x38
#define TXB0D3		0x39
#define TXB0D4		0x3A
#define TXB0D5		0x3B
#define TXB0D6		0x3C
#define TXB0D7		0x3D

#define	TXB1CTRL	0x40
#define	TXB1SIDH	0x41
#define	TXB1SIDL	0x42
#define	TXB1EID8	0x43
#define	TXB1EID0	0x44
#define	TXB1DLC		0x45
#define	TXB1D0		0x46
#define	TXB1D1		0x47
#define	TXB1D2		0x48
#define	TXB1D3		0x49
#define	TXB1D4		0x4A
#define	TXB1D5		0x4B
#define	TXB1D6		0x4C
#define	TXB1D7		0x4D

#define	TXB2CTRL	0x50
#define	TXB2SIDH	0x51
#define	TXB2SIDL	0x52
#define	TXB2EID8	0x53
#define	TXB2EID0	0x54
#define	TXB2DLC		0x55
#define	TXB2D0		0x56
#define	TXB2D1		0x57
#define	TXB2D2		0x58
#define	TXB2D3		0x59
#define	TXB2D4		0x5A
#define	TXB2D5		0x5B
#define	TXB2D6		0x5C
#define	TXB2D7		0x5D

#define	RXB0CTRL	0x60
#define	RXB0SIDH	0x61
#define	RXB0SIDL	0x62
#define	RXB0EID8	0x63
#define	RXB0EID0	0x64
#define	RXB0DLC		0x65
#define	RXB0D0		0x66
#define	RXB0D1		0x67
#define	RXB0D2		0x68
#define	RXB0D3		0x69
#define	RXB0D4		0x6A
#define	RXB0D5		0x6B
#define	RXB0D6		0x6C
#define	RXB0D7		0x6D

#define	RXB1CTRL	0x70
#define	RXB1SIDH	0x71
#define	RXB1SIDL	0x72
#define	RXB1EID8	0x73
#define	RXB1EID0	0x74
#define	RXB1DLC		0x75
#define	RXB1D0		0x76
#define	RXB1D1		0x77
#define	RXB1D2		0x78
#define	RXB1D3		0x79
#define	RXB1D4		0x7A
#define	RXB1D5		0x7B
#define	RXB1D6		0x7C
#define	RXB1D7		0x7D

/******************	Bit defintions ******************************************/

//	Register BFPCTRL	
#define	B1BFS 	0x5
#define	B0BFS 	0x4
#define	B1BFE 	0x3
#define	B0BFE	0x2
#define	B1BFM	0x1
#define	B0BFM	0x0

//	Register TXRTSCTRL	
#define	B2RTS	0x5
#define	B1RTS	0x4
#define	B0RTS	0x3
#define	B2RTSM	0x2
#define	B1RTSM	0x1
#define	B0RTSM	0x0

//	Register CANSTAT
#define	OPMOD2	0x7
#define	OPMOD1	0x6
#define	OPMOD0	0x5
#define	ICOD2	0x3
#define	ICOD1	0x2
#define	ICOD0	0x1

//	Register CANCTRL
#define	REQOP2	0x7
#define	REQOP1	0x6
#define	REQOP0	0x5
#define	ABAT	0x4	
#define	CLKEN	0x2
#define	CLKPRE1	0x1
#define	CLKPRE0	0x0

//	Register CNF3
#define	WAKFIL	0x6
#define	PHSEG22	0x2
#define	PHSEG21	0x1
#define	PHSEG20	0x0

//	Register CNF2
#define	BTLMODE	0x7
#define	SAM		0x6
#define	PHSEG12	0x5
#define	PHSEG11	0x4
#define	PHSEG10	0x3
#define	PRSEG2	0x2
#define	PRSEG1	0x1
#define	PRSEG0	0x0

//	Register CNF1
#define	SJW1	0x7
#define	SJW0	0x6
#define	BRP5	0x5
#define	BRP4	0x4
#define	BRP3	0x3
#define	BRP2	0x2
#define	BRP1	0x1
#define	BRP0	0x0

//	Register CANINTE
#define	MERRE	0x7
#define	WAKIE	0x6
#define	ERRIE	0x5
#define	TX2IE	0x4
#define	TX1IE	0x3
#define	TX0IE	0x2
#define	RX1IE	0x1
#define	RX0IE	0x0

//	Register CANINTF
#define	MERRF	0x7
#define	WAKIF	0x6
#define	ERRIF	0x5
#define	TX2IF	0x4
#define	TX1IF	0x3
#define	TX0IF	0x2
#define	RX1IF	0x1
#define	RX0IF	0x0

//	Register EFLG
#define	RX1OVR	0x7
#define	RX0OVR	0x6
#define	TXBO	0x5	
#define	TXEP	0x4
#define	RXEP	0x3
#define	TXWAR	0x2
#define	RXWAR	0x1
#define	EWARN	0x0

//	Register TXB0CTRL, TXB1CTRL, TXB2CTRL
#define	ABTF	0x6
#define	MLOA	0x5
#define	TXERR	0x4
#define	TXREQ	0x3
#define	TXP1	0x1
#define	TXP0	0x0

//	Register RXB0CTRL
#define	RXM1	0x6
#define	RXM0	0x5
#define	RXRTR	0x3
#define	BUKT	0x2
#define	BUKT1	0x1
#define	FILHIT0	0x0

//	Register RXB1CTRL
#define	FILHIT2	0x2
#define	FILHIT1	0x1
#define	FILHIT0	0x0

⌨️ 快捷键说明

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