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

📄 iogp32.h

📁 uc/OS II port code for hc08gp32
💻 H
字号:
#ifndef __IO_H
#define __IO_H
#define FALSE 0
#define TRUE 1
#define EI() {__asm CLI;}

////////////////////////////////////////////////////////////////////////////
//	 PUERTOS O REGISTROS DE IO
///////////////////////////////////////////////////////////////////////////

//M罶CARAS:

#define B7M  0x80
#define B6M  0x40		
#define B5M  0x20
#define B4M  0x10
#define B3M  0x08
#define B2M  0x04
#define B1M  0x02
#define B0M  0x01

//////////////////////////////////////////////
// PUERTO A
//////////////////////////////////////////////

volatile INT8U PORTA @0x00;	
volatile INT8U DDRA @0x04;	
volatile INT8U PTAPUE @0x0D;	

//////////////////////////////////////////////
// PUERTO B
//////////////////////////////////////////////

volatile INT8U PORTB @0x01;	
volatile INT8U DDRB @0x05;

//////////////////////////////////
// M罶CARAS
//////////////////////////////////
#define PTB0 B0M
#define PTB1 B1M
#define PTB2 B2M
#define PTB3 B3M
#define PTB4 B4M
#define PTB5 B5M
#define PTB6 B6M
#define PTB7 B7M

//////////////////////////////////////////////
// PUERTO C
//////////////////////////////////////////////

volatile INT8U PORTC @0x02;	
volatile INT8U DDRC @0x06;
volatile INT8U PTCPUE @0x0E;	

//////////////////////////////////
// M罶CARAS
//////////////////////////////////
#define PTC0 B0M
#define PTC1 B1M
#define PTC2 B2M
#define PTC3 B3M
#define PTC4 B4M
#define PTC5 B5M
#define PTC6 B6M
#define PTC7 B7M

//////////////////////////////////////////////
// PUERTO D
//////////////////////////////////////////////

volatile INT8U PORTD @0x03;	
volatile INT8U DDRD @0x07;	
volatile INT8U PTDPUE @0x0F;	

//////////////////////////////////////////////
// PUERTO E
//////////////////////////////////////////////

volatile INT8U PORTE @0x08;	
volatile INT8U DDRE @0x0C;


//////////////////////////////////////////////
//                     SPI
//////////////////////////////////////////////
volatile INT8U SPCR @0x0010;
volatile INT8U SPSCR @0x0011; 
volatile INT8U SPDR @0x0012;

//////////////////////////////////////////////
// M罶CARAS
//////////////////////////////////////////////
#define SPRIE	0x80
#define DMAS	0x40
#define	SPMSTR	0x20
#define CPOL	0x10
#define	CPHA	0x08
#define SPWOM	0x04
#define SPE		0x02
#define	SPTIE	0x01

#define SPRF	0x80
#define ERRIE	0x40
#define	OVRF	0x20
#define MODF	0x10
#define	SPTE	0x08
#define MODFEN	0x04
#define SPR1	0x02
#define	SPR0	0x01

//////////////////////////////////////////////
//                   SCI
/////////////////////////////////////////////
volatile INT8U SCC1	@0x0013; 
volatile INT8U SCC2	@0x0014; 
volatile INT8U SCC3	@0x0015; 
volatile INT8U SCS1	@0x0016; 
volatile INT8U SCS2	@0x0017;
volatile INT8U SCDR	@0x0018; 
volatile INT8U SCBR	@0x0019; 


//////////////////////////////////////////////
//                  KBI
//////////////////////////////////////////////

volatile INT8U INTKBSCR @0x001A; 
volatile INT8U INTKBIER @0x001B; 

/////////////////////////////////////////////
//				  M罶CARAS
/////////////////////////////////////////////
#define KEYF	0x08
#define ACKK	0x04
#define IMASKK	0x02
#define MODEK	0x01

//////////////////////////////////////////////
//                  TBM
//////////////////////////////////////////////

volatile INT8U TBCR @0x001C;

////////////////////////////////////
// M罶CARAS
////////////////////////////////////
#define TBIF    0x80
#define	TBR2	0x40
#define	TBR1	0x20
#define	TBR0    0x10
#define TACK    0x08
#define TBIE    0x04
#define TBON    0x02
#define TBTST   0x01
 
//////////////////////////////////////////////
//		     IRQ
//////////////////////////////////////////////

volatile INT8U INTSCR	@0x1D; 


/////////////////////////////////////////////
//	          CONFIG
/////////////////////////////////////////////

volatile INT8U CONFIG1	@0x1F;
volatile INT8U CONFIG2	@0x1E;

/////////////////////////////////////////////
//	        TIMER1
/////////////////////////////////////////////

volatile	INT8U T1SC @0x20;
volatile	INT8U T1CNTH @0x21;	
volatile	INT8U T1CNTL @0x22;	
volatile	INT16U T1CNT  @0x21;
volatile	INT8U T1MODH @0x23;	
volatile	INT8U T1MODL @0x24;	
volatile	INT16U T1MOD  @0x23;	
volatile	INT8U T1SC0 @0x25;
volatile	INT8U T1CH0H @0x26;	
volatile	INT8U T1CH0L @0x27;	
volatile	INT16U T1CH0  @0x26;	
volatile	INT8U T1SC1 @0x28; 
volatile	INT8U T1CH1H @0x29;	
volatile	INT8U T1CH1L @0x2A;	
volatile	INT16U T1CH1  @0x29;

///////////////////////////////////////////////
// M罶CARAS
///////////////////////////////////////////////
#define TOF B7M
#define TOIE B6M
#define TSTOP B5M
#define TRST B4M
#define PS2 B2M
#define PS1 B1M
#define PS0 B0M
#define CHF B7M
#define CHIE B6M
#define MSB B5M
#define MSA B4M
#define ELSB B3M
#define ELSA B2M
#define TOV B1M
#define CHMAX B0M	 

///////////////////////////////////
// MACROS
///////////////////////////////////
#define Tim1Overflow() ((T1SC & B7M )== B7M)
#define Tim1OverIntEnable() T1SC |= B6M 
#define Tim1OverIntDisable() T1SC &= ~(B6M)
#define Tim1Stop() T1SC |= B5M 
#define Tim1Run() T1SC &= ~(B5M)
#define Tim1Reset() T1SC |= B4M 
#define Tim1ClkBusDiv1	
#define Tim1ClkBusDiv2() T1SC |= PS0
#define Tim1ClkBusDiv4() T1SC |= PS1
#define Tim1ClkBusDiv8() T1SC |= PS0 | PS1
#define Tim1ClkBusDiv16() T1SC |= PS2
#define Tim1ClkBusDiv32() T1SC |= PS2 | PS0
#define Tim1ClkBusDiv64()	T1SC |= PS2 | PS1
#define Tim1OverIntAck() T1SC = T1SC; T1SC &=~(B7M)


#define Tim1Ch0IntRequest ((T1SC0 & B7M)== B7M)
#define Tim1Ch0IntEnable T1SC0 |=B6M 
#define Tim1Ch0IntDisable T1SC0 &= ~(B6M)
#define Tim1Ch0InputcRising T1SC0 |= ELSA
#define Tim1Ch0InputcFalling T1SC0 |= ELSB
#define Tim1Ch0InputcBoth T1SC0 |= ELSB | ELSA

#define Tim1Ch1IntRequest ((T1SC1 & B7M)== B7M)
#define Tim1Ch1IntEnable T1SC1 |= B6M 
#define Tim1Ch1InputcRising T1SC1 |= ELSA
#define Tim1Ch1InputcFolling T1SC1 |= ELSB

#define Tim1Ch0IntAck T1SC0 = T1SC0 ; T1SC0 &= ~(B7M)
#define Tim1Ch1IntAck T1SC1 = T1SC1; T1SC1 &= ~(B7M)

/////////////////////////////////////////////
//  	        TIMER2
/////////////////////////////////////////////

volatile	INT8U T2SC @0x2B;	
volatile	INT8U T2CNTH @0x2C;	
volatile	INT8U T2CNTL @0x2D;	
volatile	INT16U T2CNT  @0x2C;
volatile	INT8U T2MODH @0x2E;	
volatile	INT8U T2MODL @0x2F;	
volatile	INT16U T2MOD  @0x2E;	
volatile	INT8U T2SC0 @0x30;
volatile	INT8U T2CH0H @0x31;	
volatile	INT8U T2CH0L @0x32;	
volatile	INT16U T2CH0  @0x31;	
volatile	INT8U T2SC1 @0x33;
volatile	INT8U T2CH1H @0x34;
volatile	INT8U T2CH1L @0x35;
volatile	INT16U T2CH1  @0x34;

/////////////////////////////////////////////
//		  PLL
/////////////////////////////////////////////

volatile	INT8U PCTL @0x36;
////////////////////////////////////
// M罶CARAS
////////////////////////////////////
#define PLLIE   0x80
#define	PLLF	0x40
#define	PLLON	0x20
#define	BCS	    0x10
#define PRE1    0x08
#define PRE0    0x04
#define VPR1    0x02
#define VPR0    0x01
	  
volatile	INT8U PBWC @0x37; 
////////////////////////////////////
// M罶CARAS
///////////////////////////////////
#define AUTO    0x80
#define	LOCK	0x40
#define	ACQ  	0x20

volatile	INT8U PMSH @0x38; 
volatile	INT8U PMSL @0x39; 
volatile	INT8U PMRS @0x3A;
////////////////////////////////////
// M罶CARAS
////////////////////////////////////
#define VRS7    0x80
#define	VRS6	0x40
#define	VRS5	0x20
#define	VRS4	0x10
#define VRS3    0x08
#define VRS2    0x04
#define VRS1    0x02
#define VRS0    0x01
 
volatile	INT8U PMDS @0x3B; 
////////////////////////////////////
// M罶CARAS
////////////////////////////////////
#define RDS3    0x08
#define RDS2    0x04
#define RDS1    0x02
#define RDS0    0x01

/////////////////////////////////////////////
//		 ADC
/////////////////////////////////////////////

volatile	INT8U ADSCR @0x3C;
volatile	INT8U ADR @0x3D;
volatile	INT8U ADCLK @0x3E; 

/////////////////////////////////////////////
//		 SIM
/////////////////////////////////////////////

volatile	INT8U SBSR   @0xfe00;
volatile	INT8U SRSR   @0xfe01;	
volatile	INT8U SUBAR      @0xfe02;
volatile	INT8U SBFCR  @0xfe03;	
volatile	INT8U INT1   @0xfe04;	
volatile	INT8U INT2   @0xfe05;	
volatile	INT8U INT3   @0xfe06;

/////////////////////////////////////////////
//		FLASH
/////////////////////////////////////////////

volatile	INT8U FLCR   @0xfe08;		
volatile	INT8U FLBPR   @0xFF7E;

/////////////////////////////////////////////
//		BREAK
/////////////////////////////////////////////

volatile	INT16U BRK        @0xfe09;	
volatile	INT8U BRKH       @0xfe09;	
volatile	INT8U BRKL       @0xfe0A;	
volatile	INT8U BRKSCR @0xfe0B;	

/////////////////////////////////////////////
//		LVI
/////////////////////////////////////////////

volatile	INT8U LVISR  @0xFE0C;	

//////////////////////////////////////////////
//		COP
//////////////////////////////////////////////
volatile	INT8U COPCTL @0xffff;	

#endif

⌨️ 快捷键说明

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