📄 iogp32.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 + -