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

📄 regc515c.h

📁 sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu
💻 H
字号:
/*****************************************************************************|*|*  MODULE:            regc515c.h|*|*    This file contains definitions for the builtin CAN-Bus Controller of|*    the Siemens c515c controller|*****************************************************************************/#ifndef _REGC515C_H#define _REGC515C_H/* define CPU_CLK_10MHZ or CPU_CLK_8MHZ to select the right values for *//* the bit timing registers */#define CPU_CLK_10MHZ/* address of can controller in xmem */#define CAN_CTRL	0xf700/* size of message buffer including 1 dummy byte at end */#define CAN_MSG_SZ	0x10/* register offset definitions */#define CR	0#define SR	1#define IR	2#define BT_0	4#define BT_1	5#define GMS_0	6#define GMS_1	7#define GME_0	8#define GME_1	9#define GME_2	0xa#define GME_3	0xb#define MSG15MSK_0	0xc#define MSG15MSK_1	0xd#define MSG15MSK_2	0xe#define MSG15MSK_3	0xf/* register offsets  in message buffer */#define MCR_0	0#define MCR_1	1#define ARB_0	2#define ARB_1	3#define ARB_2	4#define ARB_3	5#define MCFG	6/* beginning of message data */#define DATA	7/* bits in cntr_x registers */#define MSGVAL	0x80#define TXIE	0x20#define RXIE	0x8#define INTPND	0x2#define RMTPND	0x80#define TXRQST	0x20#define MSGLST	0x8#define CPUUPD	0x8#define NEWDAT	0x2/* macros for setting and resetting above bits, see Siemens documentation */#define MCR_BIT_SET(p,x) ((p) = (0xff & ~((x) >> 1)))#define MCR_BIT_RES(p,x) ((p) = (0xff & ~(x)))/* direction = transmit in mcfg */#define DIR_TRANSMIT	0x8/* constants for bit timing registers *//* 8 MHZ */#ifdef CPU_CLK_8MHZ#define BT_0_125K	0x3#define BT_1_125K	0x1c#define BT_0_250K	0x1#define BT_1_250K	0x1c#define BT_0_500K	0x0#define BT_1_500K	0x1c#define BT_0_1M		0x0#define BT_1_1M		0x14#endif/* dito, 10 MHZ */#ifdef CPU_CLK_10MHZ#define BT_0_125K	0x3#define BT_1_125K	0x1c#define BT_0_250K	0x1#define BT_1_250K	0x1c#define BT_0_500K	0x0#define BT_1_500K	0x2f#define BT_0_1M		0x0#define BT_1_1M		0x25#endif/* Control register bits */#define	CINIT	0x1#define IE	0x2#define SIE	0x4#define EIE	0x8#define CCE	0x40/* status register bits */#define	LEC0	0x1#define	LEC1	0x2#define	LEC2	0x4#define	TXOK	0x8#define	RXOK	0x10#define	WAKE	0x20#define	WARN	0x40#define	BOFF	0x80typedef struct can_msg{    unsigned char mcr_0;    unsigned char mcr_1;    unsigned char arb_0;    unsigned char arb_1;    unsigned char arb_2;    unsigned char arb_3;    unsigned char mcfg;    unsigned char data_bytes[8];    unsigned char dummy;} *can_msgp;__xdata __at CAN_CTRL struct{    unsigned	char	cr;    unsigned	char	sr;    unsigned	char	ir;    unsigned	char	res0;    unsigned	char	bt_0;    unsigned	char	bt_1;    unsigned	char	gms_0;    unsigned	char	gms_1;    unsigned	char	gme_0;    unsigned	char	gme_1;    unsigned	char	gme_2;    unsigned	char	gme_3;    unsigned	char	msg15msk_0;    unsigned	char	msg15msk_1;    unsigned	char	msg15msk_2;    unsigned	char	msg15msk_3;    struct	can_msg msgbufs[15];} can_ctrl;/* Byte registers in numerical order */__sfr __at 0x80 P0;__sfr __at 0x81 SP;__sfr __at 0x82 DPL;__sfr __at 0x83 DPH;__sfr __at 0x86 WDTREL;__sfr __at 0x87 PCON;__sfr __at 0x88 TCON;__sfr __at 0x88 PCON1;__sfr __at 0x89 TMOD;__sfr __at 0x8A TL0;__sfr __at 0x8B TL1;__sfr __at 0x8C TH0;__sfr __at 0x8D TH1;__sfr __at 0x90 P1;__sfr __at 0x91 XPAGE;__sfr __at 0x92 DPSEL;__sfr __at 0x93 SSCCON;__sfr __at 0x94 STB;__sfr __at 0x95 SRB;__sfr __at 0x96 SSCMOD;__sfr __at 0x98 SCON;__sfr __at 0x99 SBUF;__sfr __at 0x9A IEN2;__sfr __at 0xA0 P2;__sfr __at 0xA8 IEN0;__sfr __at 0xA9 IP0;__sfr __at 0xAA SRELL;__sfr __at 0xAB SCF;__sfr __at 0xAC SCIEN;__sfr __at 0xB0 P3;__sfr __at 0xB1 SYSCON;__sfr __at 0xB8 IEN1;__sfr __at 0xB9 IP1;__sfr __at 0xBA SRELH;__sfr __at 0xC0 IRCON;__sfr __at 0xC1 CCEN;__sfr __at 0xC2 CCL1;__sfr __at 0xC3 CCH1;__sfr __at 0xC4 CCL2;__sfr __at 0xC5 CCH2;__sfr __at 0xC6 CCL3;__sfr __at 0xC7 CCH3;__sfr __at 0xC8 T2CON;__sfr __at 0xCA CRCL;__sfr __at 0xCB CRCH;__sfr __at 0xCC TL2;__sfr __at 0xCD TH2;__sfr __at 0xD0 PSW;__sfr __at 0xD8 ADCON0;__sfr __at 0xD9 ADDATH;__sfr __at 0xDA ADDATL;__sfr __at 0xDB P6;__sfr __at 0xDC ADCON1;__sfr __at 0xE0 ACC;__sfr __at 0xE8 P4;__sfr __at 0xF0 B;__sfr __at 0xF8 P5;__sfr __at 0xF8 DIR5;__sfr __at 0xFA P7;/* defining bits in SFR P0 */__sbit __at 0x80  P0_0;__sbit __at 0x81  P0_1;__sbit __at 0x82  P0_2;__sbit __at 0x83  P0_3;__sbit __at 0x84  P0_4;__sbit __at 0x85  P0_5;__sbit __at 0x86  P0_6;__sbit __at 0x87  P0_7;/* defining bits in SFR PCON1 */__sbit __at 0x88  IT0;__sbit __at 0x89  IE0;__sbit __at 0x8a  IT1;__sbit __at 0x8b  IE1;__sbit __at 0x8c  TR0;__sbit __at 0x8d  TF0;__sbit __at 0x8e  TR1;__sbit __at 0x8f  TF1;__sbit __at 0x8f  EWPD;/* defining bits in SFR P1 */__sbit __at 0x90  P1_0;__sbit __at 0x90  INT3;__sbit __at 0x91  P1_1;__sbit __at 0x91  INT4;__sbit __at 0x92  P1_2;__sbit __at 0x92  INT5;__sbit __at 0x93  P1_3;__sbit __at 0x93  INT6;__sbit __at 0x94  P1_4;__sbit __at 0x94  INT2;__sbit __at 0x95  P1_5;__sbit __at 0x95  T2EX;__sbit __at 0x96  P1_6;__sbit __at 0x96  CLKOUT;__sbit __at 0x97  P1_7;__sbit __at 0x97  T2;/* defining bits in SFR SCON */__sbit __at 0x98  RI;__sbit __at 0x99  TI;__sbit __at 0x9a  RB8;__sbit __at 0x9b  TB8;__sbit __at 0x9c  REN;__sbit __at 0x9d  SM2;__sbit __at 0x9e  SM1;__sbit __at 0x9f  SM0;/* defining bits in SFR P2 */__sbit __at 0xa0  P2_0;__sbit __at 0xa1  P2_1;__sbit __at 0xa2  P2_2;__sbit __at 0xa3  P2_3;__sbit __at 0xa4  P2_4;__sbit __at 0xa5  P2_5;__sbit __at 0xa6  P2_6;__sbit __at 0xa7  P2_7;/* defining bits in SFR IEN0 */__sbit __at 0xa8  EX0;__sbit __at 0xa9  ET0;__sbit __at 0xaa  EX1;__sbit __at 0xab  ET1;__sbit __at 0xac  ES;__sbit __at 0xad  ET2;__sbit __at 0xae  WDT;__sbit __at 0xaf  EA;/* defining bits in SFR P3 */__sbit __at 0xb0  P3_0;__sbit __at 0xb0  RXD;__sbit __at 0xb1  P3_1;__sbit __at 0xb1  TXD;__sbit __at 0xb2  P3_2;__sbit __at 0xb2  INT0;__sbit __at 0xb3  P3_3;__sbit __at 0xb3  INT1;__sbit __at 0xb4  P3_4;__sbit __at 0xb4  T0;__sbit __at 0xb5  P3_5;__sbit __at 0xb5  T1;__sbit __at 0xb6  P3_6;__sbit __at 0xb6  WR;__sbit __at 0xb7  P3_7;__sbit __at 0xb7  RD;/* defining bits in SFR IEN1 */__sbit __at 0xb8  EADC;__sbit __at 0xb9  EX2;__sbit __at 0xba  EX3;__sbit __at 0xbb  EX4;__sbit __at 0xbc  EX5;__sbit __at 0xbd  EX6;__sbit __at 0xbe  SWDT;__sbit __at 0xbf  EXEN2;/* defining bits in SFR IRCON */__sbit __at 0xc0  IADC;__sbit __at 0xc1  IEX2;__sbit __at 0xc2  IEX3;__sbit __at 0xc3  IEX4;__sbit __at 0xc4  IEX5;__sbit __at 0xc5  IEX6;__sbit __at 0xc6  TF2;__sbit __at 0xc7  EXF2;/* defining bits in SFR T2CON */__sbit __at 0xc8  T2I0;__sbit __at 0xc9  T2I1;__sbit __at 0xca  T2CM;__sbit __at 0xcb  T2R0;__sbit __at 0xcc  T2R1;__sbit __at 0xcd  I2FR;__sbit __at 0xce  I3FR;__sbit __at 0xcf  T2PS;/* defining bits in SFR PSW */__sbit __at 0xd0  P;__sbit __at 0xd1  F1;__sbit __at 0xd2  OV;__sbit __at 0xd3  RS0;__sbit __at 0xd4  RS1;__sbit __at 0xd5  F0;__sbit __at 0xd6  AC;__sbit __at 0xd7  CY;/* defining bits in SFR ADCON0 */__sbit __at 0xd8  MX0;__sbit __at 0xd9  MX1;__sbit __at 0xda  MX2;__sbit __at 0xdb  ADM;__sbit __at 0xdc  BSY;__sbit __at 0xdd  ADEX;__sbit __at 0xde  CLK;__sbit __at 0xdf  BD;/* defining bits in SFR ACC */__sbit __at 0xe0  ACC_0;__sbit __at 0xe1  ACC_1;__sbit __at 0xe2  ACC_2;__sbit __at 0xe3  ACC_3;__sbit __at 0xe4  ACC_4;__sbit __at 0xe5  ACC_5;__sbit __at 0xe6  ACC_6;__sbit __at 0xe7  ACC_7;/* defining bits in SFR P4 */__sbit __at 0xe8  P4_0;__sbit __at 0xe8  ADST;__sbit __at 0xe9  P4_1;__sbit __at 0xe9  SCLK;__sbit __at 0xea  P4_2;__sbit __at 0xea  SRI;__sbit __at 0xeb  P4_3;__sbit __at 0xeb  STO;__sbit __at 0xec  P4_4;__sbit __at 0xec  SLS;__sbit __at 0xed  P4_5;__sbit __at 0xed  INT8;__sbit __at 0xee  P4_6;__sbit __at 0xee  TXDC;__sbit __at 0xef  P4_7;__sbit __at 0xef  RXDC;/* defining bits in SFR B */__sbit __at 0xf0  B_0;__sbit __at 0xf1  B_1;__sbit __at 0xf2  B_2;__sbit __at 0xf3  B_3;__sbit __at 0xf4  B_4;__sbit __at 0xf5  B_5;__sbit __at 0xf6  B_6;__sbit __at 0xf7  B_7;/* defining bits in SFR DIR5 */__sbit __at 0xf8  P5_0;__sbit __at 0xf9  P5_1;__sbit __at 0xfa  P5_2;__sbit __at 0xfb  P5_3;__sbit __at 0xfc  P5_4;__sbit __at 0xfd  P5_5;__sbit __at 0xfe  P5_6;__sbit __at 0xff  P5_7;__sbit __at 0xf8  DIR5_0;__sbit __at 0xf9  DIR5_1;__sbit __at 0xfa  DIR5_2;__sbit __at 0xfb  DIR5_3;__sbit __at 0xfc  DIR5_4;__sbit __at 0xfd  DIR5_5;__sbit __at 0xfe  DIR5_6;__sbit __at 0xff  DIR5_7;#endif /* _REGC515C_H */

⌨️ 快捷键说明

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