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

📄 sfr_r823.h

📁 针对日本瑞莎单片机r8c/23 开发的LIN网络通讯程序包括主节点和从节点
💻 H
📖 第 1 页 / 共 5 页
字号:
#ifndef SFR_R823_H
#define SFR_R823_H
/************************************************************************************
*																					*
*   File Name   : SFR_R823.h														*
*   Contents    : definition of R8C/22 & R8C/23 Group SFR							*
*   Copyright(C) 2005. Renesas Technology Corp., All rights reserved.				*
*   Version     : 1.20 (06-06-07)													*
*                      rename : ssuaic to ssuic, iic2aic to iicic					*
*                 1.10 (05-11-30)													*
*                      rename : trdmdr to trdmr, tpsc0-2 to tck0-2,					*
*                               tstop0,1 to csel0,1									*
*                 1.00 (05-10-05)													*
*																					*
*   note        :																	*
*																					*
************************************************************************************/

/********************************************************
*  declare SFR addresses                                *
********************************************************/

#pragma	ADDRESS		pm0_addr		0004H	/* Processor mode register 0 */
#pragma	ADDRESS		pm1_addr		0005H	/* Processor mode register 1 */
#pragma	ADDRESS		cm0_addr		0006H	/* System clock control register 0 */
#pragma	ADDRESS		cm1_addr		0007H	/* System clock control register 1 */
#pragma	ADDRESS		prcr_addr		000AH	/* Protect register */
#pragma	ADDRESS		ocd_addr		000CH	/* Oscillation stop detect register */
#pragma	ADDRESS		wdtr_addr		000DH	/* Watchdog timer reset register */
#pragma	ADDRESS		wdts_addr		000EH	/* Watchdog timer start register */
#pragma	ADDRESS		wdc_addr		000FH	/* Watchdog timer control register */
#pragma	ADDRESS		rmad0_addr		0010H	/* Address match interrupt register0 */
#pragma	ADDRESS		aier_addr		0013H	/* Address match interrupt enable register */
#pragma	ADDRESS		rmad1_addr		0014H	/* Address match interrupt register1 */
#pragma	ADDRESS		cspr_addr		001CH	/* Count source protect mode register */
#pragma	ADDRESS		fra0_addr		0023H	/* High-speed on-chip oscillator contorl register 0 */
#pragma	ADDRESS		fra1_addr		0024H	/* High-speed on-chip oscillator contorl register 1 */
#pragma	ADDRESS		fra2_addr		0025H	/* High-speed on-chip oscillator contorl register 2 */
#pragma	ADDRESS		vca1_addr		0031H	/* Voltage detection register 1 */
#pragma	ADDRESS		vca2_addr		0032H	/* Voltage detection register 2 */
#pragma	ADDRESS		vw1c_addr		0036H	/* Voltage monitor 1 circuit control register */
#pragma	ADDRESS		vw2c_addr		0037H	/* Voltage monitor 2 circuit control register */

/* Interrupt control registers */
#pragma	ADDRESS		c01wkic_addr	0043h	/* CAN0 wake up  */
#pragma	ADDRESS		c0recic_addr	0044h	/* CAN0 successful reception  */
#pragma	ADDRESS		c0trmic_addr	0045h	/* CAN0 successful transmission  */
#pragma	ADDRESS		c01erric_addr	0046h	/* CAN0 error  */
#pragma	ADDRESS		trd0ic_addr		0048H	/* Timer RD0  */
#pragma	ADDRESS		trd1ic_addr		0049H	/* Timer RD1  */
#pragma	ADDRESS		treic_addr		004AH	/* Timer RE  */
#pragma	ADDRESS		kupic_addr		004DH	/* Key input  */
#pragma	ADDRESS		adic_addr		004EH	/* A-D conversion  */
#pragma	ADDRESS		ssuic_addr		004FH	/* SSU  */
#pragma	ADDRESS		iicic_addr		004FH	/* IIC  */
#pragma	ADDRESS		s0tic_addr		0051H	/* UART0 transmit  */
#pragma	ADDRESS		s0ric_addr		0052H	/* UART0 receive  */
#pragma	ADDRESS		s1tic_addr		0053H	/* UART1 transmit  */
#pragma	ADDRESS		s1ric_addr		0054H	/* UART1 receive  */
#pragma	ADDRESS		int2ic_addr		0055H	/* INT2  */
#pragma	ADDRESS		traic_addr		0056H	/* Timer RA  */
#pragma	ADDRESS		trbic_addr		0058H	/* Timer RB  */
#pragma	ADDRESS		int1ic_addr		0059H	/* INT1  */
#pragma	ADDRESS		int3ic_addr		005AH	/* INT3  */
#pragma	ADDRESS		int0ic_addr		005DH	/* INT0  */

#pragma	ADDRESS		u0mr_addr		00A0H	/* UART0 transmit/receive mode register */
#pragma	ADDRESS		u0brg_addr		00A1H	/* UART0 bit rate register */
#pragma	ADDRESS		u0tb_addr		00A2H	/* UART0 transmit buffer register */
#pragma	ADDRESS		u0c0_addr		00A4H	/* UART0 transmit/receive control register 0 */
#pragma	ADDRESS		u0c1_addr		00A5H	/* UART0 transmit/receive control register 1 */
#pragma	ADDRESS		u0rb_addr		00A6H	/* UART0 receive buffer register */

#pragma	ADDRESS		u1mr_addr		00A8H	/* UART1 transmit/receive mode register */
#pragma	ADDRESS		u1brg_addr		00A9H	/* UART1 bit rate register */
#pragma	ADDRESS		u1tb_addr		00AAH	/* UART1 transmit buffer register */
#pragma	ADDRESS		u1c0_addr		00ACH	/* UART1 transmit/receive control register 0 */
#pragma	ADDRESS		u1c1_addr		00ADH	/* UART1 transmit/receive control register 1 */
#pragma	ADDRESS		u1rb_addr		00AEH	/* UART1 receive buffer register */

#pragma	ADDRESS		sscrh_addr		00B8H	/* SS control register H */
#pragma	ADDRESS		iccr1_addr		00B8H	/* IIC bus control register 1 */
#pragma	ADDRESS		sscrl_addr		00B9H	/* SS control register L */
#pragma	ADDRESS		iccr2_addr		00B9H	/* IIC bus control register 2 */
#pragma	ADDRESS		ssmr_addr		00BAH	/* SS mode register */
#pragma	ADDRESS		icmr_addr		00BAH	/* IIC bus mode register */
#pragma	ADDRESS		sser_addr		00BBH	/* SS enable register */
#pragma	ADDRESS		icier_addr		00BBH	/* IIC bus interrupt enable register */
#pragma	ADDRESS		sssr_addr		00BCH	/* SS status register */
#pragma	ADDRESS		icsr_addr		00BCH	/* IIC bus status register */
#pragma	ADDRESS		ssmr2_addr		00BDH	/* SS mode register 2 */
#pragma	ADDRESS		sar_addr		00BDH	/* Slave address register */
#pragma	ADDRESS		sstdr_addr		00BEH	/* SS transmit data register */
#pragma	ADDRESS		icdrt_addr		00BEH	/* IIC bus transmit data register */
#pragma	ADDRESS		ssrdr_addr		00BFH	/* SS receive data register */
#pragma	ADDRESS		icdrr_addr		00BFH	/* IIC bus receive data register */

#pragma	ADDRESS		ad_addr			00C0H	/* A-D register */
#pragma	ADDRESS		adcon2_addr		00D4H	/* A-D control register 2 */
#pragma	ADDRESS		adcon0_addr		00D6H	/* A-D control register 0 */
#pragma	ADDRESS		adcon1_addr		00D7H	/* A-D control register 1 */

#pragma	ADDRESS		p0_addr			00E0H	/* Port P0 register */
#pragma	ADDRESS		p1_addr			00E1H	/* Port P1 register */
#pragma	ADDRESS		pd0_addr		00E2H	/* Port P0 direction register */
#pragma	ADDRESS		pd1_addr		00E3H	/* Port P1 direction register */
#pragma	ADDRESS		p2_addr			00E4H	/* Port P2 register */
#pragma	ADDRESS		p3_addr			00E5H	/* Port P3 register */
#pragma	ADDRESS		pd2_addr		00E6H	/* Port P2 direction register */
#pragma	ADDRESS		pd3_addr		00E7H	/* Port P3 direction register */
#pragma	ADDRESS		p4_addr			00E8H	/* Port P4 register */
#pragma	ADDRESS		pd4_addr		00EAH	/* Port P4 direction register */
#pragma	ADDRESS		p6_addr			00ECH	/* Port P6 register */
#pragma	ADDRESS		pd6_addr		00EEH	/* Port P6 direction register */

#pragma	ADDRESS		u1sr_addr		00F5H	/* UART1 function select register */
#pragma	ADDRESS		pmr_addr		00F8H	/* Port mode register */
#pragma	ADDRESS		inten_addr		00F9H	/* External interrupt enable register */
#pragma	ADDRESS		intf_addr		00FAH	/* External interrupt filter select register */
#pragma	ADDRESS		kien_addr		00FBH	/* Key input enable register */
#pragma	ADDRESS		pur0_addr		00FCH	/* Pull-up control register0 */
#pragma	ADDRESS		pur1_addr		00FDH	/* Pull-up control register1 */

#pragma	ADDRESS		tracr_addr		0100H	/* Timer RA control register */
#pragma	ADDRESS		traioc_addr		0101H	/* Timer RA I/O control register */
#pragma	ADDRESS		tramr_addr		0102H	/* Timer RA mode register */
#pragma	ADDRESS		trapre_addr		0103H	/* Timer RA prescaler register */
#pragma	ADDRESS		tra_addr		0104H	/* Timer RA register */

#pragma	ADDRESS		lincr_addr		0106H	/* LIN control register */
#pragma	ADDRESS		linst_addr		0107H	/* LIN status register */

#pragma	ADDRESS		trbcr_addr		0108H	/* Timer RB control register */
#pragma	ADDRESS		trbocr_addr		0109H	/* Timer RB one-shot control register */
#pragma	ADDRESS		trbioc_addr		010AH	/* Timer RB I/O control register */
#pragma	ADDRESS		trbmr_addr		010BH	/* Timer RB mode register */
#pragma	ADDRESS		trbpre_addr		010CH	/* Timer RB prescaler register */
#pragma	ADDRESS		trbsc_addr		010DH	/* Timer RB secondary register */
#pragma	ADDRESS		trbpr_addr		010EH	/* Timer RB primary register */

#pragma	ADDRESS		tresec_addr		0118H	/* Timer RE seconds data register / Timer RE counter data register */
#pragma	ADDRESS		tremin_addr		0119H	/* Timer RE minutes data register / Timer RE compare data register */
#pragma	ADDRESS		trecr1_addr		011CH	/* Timer RE control register1 */
#pragma	ADDRESS		trecr2_addr		011DH	/* Timer RE control register2 */
#pragma	ADDRESS		trecsr_addr		011EH	/* Timer RE count source select register */

#pragma	ADDRESS		trdstr_addr		0137H	/* Timer RD start register */
#pragma	ADDRESS		trdmr_addr		0138H	/* Timer RD mode register */
#pragma	ADDRESS		trdpmr_addr		0139H	/* Timer RD PWM mode register */
#pragma	ADDRESS		trdfcr_addr		013AH	/* Timer RD function control register */
#pragma	ADDRESS		trdoer1_addr	013BH	/* Timer RD output master enable register 1 */
#pragma	ADDRESS		trdoer2_addr	013CH	/* Timer RD output master enable register 2 */
#pragma	ADDRESS		trdocr_addr		013DH	/* Timer RD output control register */
#pragma	ADDRESS		trddf0_addr		013EH	/* Timer RD digital filter function selection register 0 */
#pragma	ADDRESS		trddf1_addr		013FH	/* Timer RD digital filter function selection register 1 */
#pragma	ADDRESS		trdcr0_addr		0140H	/* Timer RD control register 0 */
#pragma	ADDRESS		trdiora0_addr	0141H	/* Timer RD I/O contorol register A0 */
#pragma	ADDRESS		trdiorc0_addr	0142H	/* Timer RD I/O contorol register C0 */
#pragma	ADDRESS		trdsr0_addr		0143H	/* Timer RD status register 0 */
#pragma	ADDRESS		trdier0_addr	0144H	/* Timer RD interrupt enable register 0 */
#pragma	ADDRESS		trdpocr0_addr	0145H	/* Timer RD PWM mode output level control register 0 */
#pragma	ADDRESS		trd0_addr		0146H	/* Timer RD counter 0 */
#pragma	ADDRESS		trdgra0_addr	0148H	/* Timer RD general register A0 */
#pragma	ADDRESS		trdgrb0_addr	014AH	/* Timer RD general register B0 */
#pragma	ADDRESS		trdgrc0_addr	014CH	/* Timer RD general register C0 */
#pragma	ADDRESS		trdgrd0_addr	014EH	/* Timer RD general register D0 */
#pragma	ADDRESS		trdcr1_addr		0150H	/* Timer RD control register 1 */
#pragma	ADDRESS		trdiora1_addr	0151H	/* Timer RD I/O contorol register A1 */
#pragma	ADDRESS		trdiorc1_addr	0152H	/* Timer RD I/O contorol register C1 */
#pragma	ADDRESS		trdsr1_addr		0153H	/* Timer RD status register 1 */
#pragma	ADDRESS		trdier1_addr	0154H	/* Timer RD interrupt enable register 1 */
#pragma	ADDRESS		trdpocr1_addr	0155H	/* Timer RD PWM mode output level control register 1 */
#pragma	ADDRESS		trd1_addr		0156H	/* Timer RD counter 1 */
#pragma	ADDRESS		trdgra1_addr	0158H	/* Timer RD general register A1 */
#pragma	ADDRESS		trdgrb1_addr	015AH	/* Timer RD general register B1 */
#pragma	ADDRESS		trdgrc1_addr	015CH	/* Timer RD general register C1 */
#pragma	ADDRESS		trdgrd1_addr	015EH	/* Timer RD general register D1 */

#pragma	ADDRESS		fmr4_addr		01B3H	/* Flash memory control register 4 */
#pragma	ADDRESS		fmr1_addr		01B5H	/* Flash memory control register 1 */
#pragma	ADDRESS		fmr0_addr		01B7H	/* Flash memory control register 0 */

/* CAN */
#pragma ADDRESS     c0mctl          1300h       /* CAN0 message control register */
#pragma ADDRESS     c0mctl0         1300h       /* CAN0 message control register 0 */
#pragma ADDRESS     c0mctl1         1301h       /* CAN0 message control register 1 */
#pragma ADDRESS     c0mctl2         1302h       /* CAN0 message control register 2 */
#pragma ADDRESS     c0mctl3         1303h       /* CAN0 message control register 3 */
#pragma ADDRESS     c0mctl4         1304h       /* CAN0 message control register 4 */
#pragma ADDRESS     c0mctl5         1305h       /* CAN0 message control register 5 */
#pragma ADDRESS     c0mctl6         1306h       /* CAN0 message control register 6 */
#pragma ADDRESS     c0mctl7         1307h       /* CAN0 message control register 7 */
#pragma ADDRESS     c0mctl8         1308h       /* CAN0 message control register 8 */
#pragma ADDRESS     c0mctl9         1309h       /* CAN0 message control register 9 */
#pragma ADDRESS     c0mctl10        130ah       /* CAN0 message control register 10 */
#pragma ADDRESS     c0mctl11        130bh       /* CAN0 message control register 11 */
#pragma ADDRESS     c0mctl12        130ch       /* CAN0 message control register 12 */
#pragma ADDRESS     c0mctl13        130dh       /* CAN0 message control register 13 */
#pragma ADDRESS     c0mctl14        130eh       /* CAN0 message control register 14 */
#pragma ADDRESS     c0mctl15        130fh       /* CAN0 message control register 15 */

#pragma ADDRESS     c0ctlr_addr     1310h       /* CAN0 control register */
#pragma ADDRESS     c0str_addr      1312h       /* CAN0 status register */
#pragma ADDRESS     c0sstr_addr     1314h       /* CAN0 slot status register */
#pragma ADDRESS     c0icr_addr      1316h       /* CAN0 interrupt control register */

#pragma ADDRESS     c0idr_addr      1318h       /* CAN0 extended ID register */
#pragma ADDRESS     c0conr_addr     131ah       /* CAN0 configuration register */
#pragma ADDRESS     c0recr_addr     131ch       /* CAN0 receive error count register */
#pragma ADDRESS     c0tecr_addr     131dh       /* CAN0 transmit error count register */
#pragma ADDRESS     c0afs_addr      1342h       /* CAN0 acceptance filter support register */
#pragma ADDRESS     cclkr_addr      135fh       /* CAN0/1 clock select register */

#pragma ADDRESS     c0slot          1360h       /* CAN0 message box   :Message Object */
#pragma ADDRESS     c0slot0         1360h       /* CAN0 message box 0 :Message Object */
#pragma ADDRESS     c0slot1         1370h       /* CAN0 message box 1 :Message Object */
#pragma ADDRESS     c0slot2         1380h       /* CAN0 message box 2 :Message Object */
#pragma ADDRESS     c0slot3         1390h       /* CAN0 message box 3 :Message Object */
#pragma ADDRESS     c0slot4         13a0h       /* CAN0 message box 4 :Message Object */
#pragma ADDRESS     c0slot5         13b0h       /* CAN0 message box 5 :Message Object */
#pragma ADDRESS     c0slot6         13c0h       /* CAN0 message box 6 :Message Object */
#pragma ADDRESS     c0slot7         13d0h       /* CAN0 message box 7 :Message Object */
#pragma ADDRESS     c0slot8         13e0h       /* CAN0 message box 8 :Message Object */
#pragma ADDRESS     c0slot9         13f0h       /* CAN0 message box 9 :Message Object */
#pragma ADDRESS     c0slot10        1400h       /* CAN0 message box 10:Message Object */
#pragma ADDRESS     c0slot11        1410h       /* CAN0 message box 11:Message Object */
#pragma ADDRESS     c0slot12        1420h       /* CAN0 message box 12:Message Object */
#pragma ADDRESS     c0slot13        1430h       /* CAN0 message box 13:Message Object */
#pragma ADDRESS     c0slot14        1440h       /* CAN0 message box 14:Message Object */
#pragma ADDRESS     c0slot15        1450h       /* CAN0 message box 15:Message Object */

#pragma ADDRESS     c0gmr           1460h       /* CAN0 global mask register */
#pragma ADDRESS     c0lmar          1466h       /* CAN0 local mask A register */
#pragma ADDRESS     c0lmbr          146ch       /* CAN0 local mask B register */

/********************************************************
*  declare SFR bit                                      *
********************************************************/
struct	bit_def {
	char	b0:1;
	char	b1:1;
	char	b2:1;
	char	b3:1;
	char	b4:1;
	char	b5:1;
	char	b6:1;
	char	b7:1;
};
union	byte_def{
	struct	bit_def bit;
	char	byte;
};

/*------------------------------------------------------
  Processor mode register0
------------------------------------------------------*/
union	byte_def	pm0_addr;
#define		pm0			pm0_addr.byte

#define		pm03		pm0_addr.bit.b3			/* Software reset bit */

/*------------------------------------------------------
  Processor mode register1
------------------------------------------------------*/

⌨️ 快捷键说明

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