📄 mc68vz328.h
字号:
#define PD_INT0 0x01 /* Use INT0 as PD[0] */#define PD_INT1 0x02 /* Use INT1 as PD[1] */#define PD_INT2 0x04 /* Use INT2 as PD[2] */#define PD_INT3 0x08 /* Use INT3 as PD[3] */#define PD_IRQ1 0x10 /* Use IRQ1 as PD[4] */#define PD_IRQ2 0x20 /* Use IRQ2 as PD[5] */#define PD_IRQ3 0x40 /* Use IRQ3 as PD[6] */#define PD_IRQ6 0x80 /* Use IRQ6 as PD[7] *//* * Port E */#define PEDIR_ADDR 0xfffff420 /* Port E direction reg */#define PEDATA_ADDR 0xfffff421 /* Port E data register */#define PEPUEN_ADDR 0xfffff422 /* Port E Pull-Up enable reg */#define PESEL_ADDR 0xfffff423 /* Port E Select Register */#define PEDIR BYTE_REF(PEDIR_ADDR)#define PEDATA BYTE_REF(PEDATA_ADDR)#define PEPUEN BYTE_REF(PEPUEN_ADDR)#define PESEL BYTE_REF(PESEL_ADDR)#define PE(x) (1 << (x))#define PE_SPMTXD 0x01 /* Use SPMTXD as PE[0] */#define PE_SPMRXD 0x02 /* Use SPMRXD as PE[1] */#define PE_SPMCLK 0x04 /* Use SPMCLK as PE[2] */#define PE_DWE 0x08 /* Use DWE as PE[3] */#define PE_RXD 0x10 /* Use RXD as PE[4] */#define PE_TXD 0x20 /* Use TXD as PE[5] */#define PE_RTS 0x40 /* Use RTS as PE[6] */#define PE_CTS 0x80 /* Use CTS as PE[7] *//* * Port F */#define PFDIR_ADDR 0xfffff428 /* Port F direction reg */#define PFDATA_ADDR 0xfffff429 /* Port F data register */#define PFPUEN_ADDR 0xfffff42a /* Port F Pull-Up enable reg */#define PFSEL_ADDR 0xfffff42b /* Port F Select Register */#define PFDIR BYTE_REF(PFDIR_ADDR)#define PFDATA BYTE_REF(PFDATA_ADDR)#define PFPUEN BYTE_REF(PFPUEN_ADDR)#define PFSEL BYTE_REF(PFSEL_ADDR)#define PF(x) (1 << (x))#define PF_LCONTRAST 0x01 /* Use LCONTRAST as PF[0] */#define PF_IRQ5 0x02 /* Use IRQ5 as PF[1] */#define PF_CLKO 0x04 /* Use CLKO as PF[2] */#define PF_A20 0x08 /* Use A20 as PF[3] */#define PF_A21 0x10 /* Use A21 as PF[4] */#define PF_A22 0x20 /* Use A22 as PF[5] */#define PF_A23 0x40 /* Use A23 as PF[6] */#define PF_CSA1 0x80 /* Use CSA1 as PF[7] *//* * Port G */#define PGDIR_ADDR 0xfffff430 /* Port G direction reg */#define PGDATA_ADDR 0xfffff431 /* Port G data register */#define PGPUEN_ADDR 0xfffff432 /* Port G Pull-Up enable reg */#define PGSEL_ADDR 0xfffff433 /* Port G Select Register */#define PGDIR BYTE_REF(PGDIR_ADDR)#define PGDATA BYTE_REF(PGDATA_ADDR)#define PGPUEN BYTE_REF(PGPUEN_ADDR)#define PGSEL BYTE_REF(PGSEL_ADDR)#define PG(x) (1 << (x))#define PG_BUSW_DTACK 0x01 /* Use BUSW/DTACK as PG[0] */#define PG_A0 0x02 /* Use A0 as PG[1] */#define PG_EMUIRQ 0x04 /* Use EMUIRQ as PG[2] */#define PG_HIZ_P_D 0x08 /* Use HIZ/P/D as PG[3] */#define PG_EMUCS 0x10 /* Use EMUCS as PG[4] */#define PG_EMUBRK 0x20 /* Use EMUBRK as PG[5] *//*Add by he,2001.8.10*//* * Port J */#define PJDIR_ADDR 0xfffff438 /* Port J direction reg */#define PJDATA_ADDR 0xfffff439 /* Port J data register */#define PJPUEN_ADDR 0xfffff43a /* Port J Pull-Up enable reg */#define PJSEL_ADDR 0xfffff43b /* Port J Select Register */#define PJDIR BYTE_REF(PJDIR_ADDR)#define PJDATA BYTE_REF(PJDATA_ADDR)#define PJPUEN BYTE_REF(PJPUEN_ADDR)#define PJSEL BYTE_REF(PJSEL_ADDR)/*End by he.*/#define PKDIR_ADDR 0xfffff440 /* Port J direction reg */#define PKDATA_ADDR 0xfffff441 /* Port J data register */#define PKPUEN_ADDR 0xfffff442 /* Port J Pull-Up enable reg */#define PKSEL_ADDR 0xfffff443 /* Port J Select Register */#define PKDIR BYTE_REF(PKDIR_ADDR)#define PKDATA BYTE_REF(PKDATA_ADDR)#define PKPUEN BYTE_REF(PKPUEN_ADDR)#define PKSEL BYTE_REF(PKSEL_ADDR)/********** * * 0xFFFFF5xx -- Pulse-Width Modulator (PWM) * **********//* * PWM Control Register */#define PWMC_ADDR 0xfffff500#define PWMC WORD_REF(PWMC_ADDR)#define PWMC_CLKSEL_MASK 0x0003 /* Clock Selection */#define PWMC_CLKSEL_SHIFT 0#define PWMC_REPEAT_MASK 0x000c /* Sample Repeats */#define PWMC_REPEAT_SHIFT 2#define PWMC_EN 0x0010 /* Enable PWM */#define PMNC_FIFOAV 0x0020 /* FIFO Available */#define PWMC_IRQEN 0x0040 /* Interrupt Request Enable */#define PWMC_IRQ 0x0080 /* Interrupt Request (FIFO empty) */#define PWMC_PRESCALER_MASK 0x7f00 /* Incoming Clock prescaler */#define PWMC_PRESCALER_SHIFT 8#define PWMC_CLKSRC 0x8000 /* Clock Source Select *//* '328-compatible definitions */#define PWMC_PWMEN PWMC_EN/* * PWM Sample Register */#define PWMS_ADDR 0xfffff502#define PWMS WORD_REF(PWMS_ADDR)/* * PWM Period Register */#define PWMP_ADDR 0xfffff504#define PWMP BYTE_REF(PWMP_ADDR)/* * PWM Counter Register */#define PWMCNT_ADDR 0xfffff505#define PWMCNT BYTE_REF(PWMCNT_ADDR)/********** * * 0xFFFFF6xx -- General-Purpose Timer * **********//* * Timer Control register */#define TCTL_ADDR 0xfffff600#define TCTL WORD_REF(TCTL_ADDR)#define TCTL_TEN 0x0001 /* Timer Enable */#define TCTL_CLKSOURCE_MASK 0x000e /* Clock Source: */#define TCTL_CLKSOURCE_STOP 0x0000 /* Stop count (disabled) */#define TCTL_CLKSOURCE_SYSCLK 0x0002 /* SYSCLK to prescaler */#define TCTL_CLKSOURCE_SYSCLK_16 0x0004 /* SYSCLK/16 to prescaler */#define TCTL_CLKSOURCE_TIN 0x0006 /* TIN to prescaler */#define TCTL_CLKSOURCE_32KHZ 0x0008 /* 32kHz clock to prescaler */#define TCTL_IRQEN 0x0010 /* IRQ Enable */#define TCTL_OM 0x0020 /* Output Mode */#define TCTL_CAP_MASK 0x00c0 /* Capture Edge: */#define TCTL_CAP_RE 0x0040 /* Capture on rizing edge */#define TCTL_CAP_FE 0x0080 /* Capture on falling edge */#define TCTL_FRR 0x0010 /* Free-Run Mode *//* '328-compatible definitions */#define TCTL1_ADDR TCTL_ADDR#define TCTL1 TCTL/* * Timer Prescaler Register */#define TPRER_ADDR 0xfffff602#define TPRER WORD_REF(TPRER_ADDR)/* '328-compatible definitions */#define TPRER1_ADDR TPRER_ADDR#define TPRER1 TPRER/* * Timer Compare Register */#define TCMP_ADDR 0xfffff604#define TCMP WORD_REF(TCMP_ADDR)/* '328-compatible definitions */#define TCMP1_ADDR TCMP_ADDR#define TCMP1 TCMP/* * Timer Capture register */#define TCR_ADDR 0xfffff606#define TCR WORD_REF(TCR_ADDR)/* '328-compatible definitions */#define TCR1_ADDR TCR_ADDR#define TCR1 TCR/* * Timer Counter Register */#define TCN_ADDR 0xfffff608#define TCN WORD_REF(TCN_ADDR)/* '328-compatible definitions */#define TCN1_ADDR TCN_ADDR#define TCN1 TCN/* * Timer Status Register */#define TSTAT_ADDR 0xfffff60a#define TSTAT WORD_REF(TSTAT_ADDR)#define TSTAT_COMP 0x0001 /* Compare Event occurred */#define TSTAT_CAPT 0x0001 /* Capture Event occurred *//* '328-compatible definitions */#define TSTAT1_ADDR TSTAT_ADDR#define TSTAT1 TSTAT/********** * * 0xFFFFF8xx -- Serial Periferial Interface Master (SPIM) * **********//* * SPIM Data Register */#define SPIMDATA_ADDR 0xfffff800#define SPIMDATA WORD_REF(SPIMDATA_ADDR)/* * SPIM Control/Status Register */#define SPIMCONT_ADDR 0xfffff802#define SPIMCONT WORD_REF(SPIMCONT_ADDR)#define SPIMCONT_BIT_COUNT_MASK 0x000f /* Transfer Length in Bytes */#define SPIMCONT_BIT_COUNT_SHIFT 0#define SPIMCONT_POL 0x0010 /* SPMCLK Signel Polarity */#define SPIMCONT_PHA 0x0020 /* Clock/Data phase relationship */#define SPIMCONT_IRQEN 0x0040 /* IRQ Enable */#define SPIMCONT_IRQ 0x0080 /* Interrupt Request */#define SPIMCONT_XCH 0x0100 /* Exchange */#define SPIMCONT_ENABLE 0x0200 /* Enable SPIM */#define SPIMCONT_DATA_RATE_MASK 0xe000 /* SPIM Data Rate */#define SPIMCONT_DATA_RATE_SHIFT 13/* '328-compatible definitions */#define SPIMCONT_SPIMIRQ SPIMCONT_IRQ#define SPIMCONT_SPIMEN SPIMCONT_ENABLE/********** * * 0xFFFFF9xx -- UART * **********//* * UART Status/Control Register *//* #define USTCNT_ADDR 0xfffff900#define USTCNT WORD_REF(USTCNT_ADDR) */#define USTCNT_TXAE 0x0001 /* Transmitter Available Interrupt Enable */#define USTCNT_TXHE 0x0002 /* Transmitter Half Empty Enable */#define USTCNT_TXEE 0x0004 /* Transmitter Empty Interrupt Enable */#define USTCNT_RXRE 0x0008 /* Receiver Ready Interrupt Enable */#define USTCNT_RXHE 0x0010 /* Receiver Half-Full Interrupt Enable */#define USTCNT_RXFE 0x0020 /* Receiver Full Interrupt Enable */#define USTCNT_CTSD 0x0040 /* CTS Delta Interrupt Enable */#define USTCNT_ODEN 0x0080 /* Old Data Interrupt Enable */#define USTCNT_8_7 0x0100 /* Eight or seven-bit transmission */#define USTCNT_STOP 0x0200 /* Stop bit transmission */#define USTCNT_ODD 0x0400 /* Odd Parity */#define USTCNT_PEN 0x0800 /* Parity Enable */#define USTCNT_CLKM 0x1000 /* Clock Mode Select */#define USTCNT_TXEN 0x2000 /* Transmitter Enable */#define USTCNT_RXEN 0x4000 /* Receiver Enable */#define USTCNT_UEN 0x8000 /* UART Enable *//* '328-compatible definitions */#define USTCNT_TXAVAILEN USTCNT_TXAE#define USTCNT_TXHALFEN USTCNT_TXHE#define USTCNT_TXEMPTYEN USTCNT_TXEE#define USTCNT_RXREADYEN USTCNT_RXRE#define USTCNT_RXHALFEN USTCNT_RXHE#define USTCNT_RXFULLEN USTCNT_RXFE#define USTCNT_CTSDELTAEN USTCNT_CTSD#define USTCNT_ODD_EVEN USTCNT_ODD#define USTCNT_PARITYEN USTCNT_PEN#define USTCNT_CLKMODE USTCNT_CLKM#define USTCNT_UARTEN USTCNT_UEN/* * UART Baud Control Register */#define UBAUD_ADDR 0xfffff902/* #define UBAUD WORD_REF(UBAUD_ADDR) */#define UBAUD_PRESCALER_MASK 0x003f /* Actual divisor is 65 - PRESCALER */#define UBAUD_PRESCALER_SHIFT 0#define UBAUD_DIVIDE_MASK 0x0700 /* Baud Rate freq. divizor */#define UBAUD_DIVIDE_SHIFT 8#define UBAUD_BAUD_SRC 0x0800 /* Baud Rate Source */#define UBAUD_UCLKDIR 0x2000 /* UCLK Direction *//* * UART Receiver Register */#define URX_ADDR 0xfffff904/*#define URX WORD_REF(URX_ADDR)#define URX_RXDATA_ADDR 0xfffff905#define URX_RXDATA BYTE_REF(URX_RXDATA_ADDR) */#define URX_RXDATA_MASK 0x00ff /* Received data */#define URX_RXDATA_SHIFT 0#define URX_PARITY_ERROR 0x0100 /* Parity Error */#define URX_BREAK 0x0200 /* Break Detected */#define URX_FRAME_ERROR 0x0400 /* Framing Error */#define URX_OVRUN 0x0800 /* Serial Overrun */#define URX_OLD_DATA 0x1000 /* Old data in FIFO */#define URX_DATA_READY 0x2000 /* Data Ready (FIFO not empty) */#define URX_FIFO_HALF 0x4000 /* FIFO is Half-Full */#define URX_FIFO_FULL 0x8000 /* FIFO is Full *//* * UART Transmitter Register */#define UTX_ADDR 0xfffff906/*#define UTX WORD_REF(UTX_ADDR) */#define UTX_TXDATA_ADDR 0xfffff907/*#define UTX_TXDATA BYTE_REF(UTX_TXDATA_ADDR) */#define UTX_TXDATA_MASK 0x00ff /* Data to be transmitted */#define UTX_TXDATA_SHIFT 0#define UTX_CTS_DELTA 0x0100 /* CTS changed */#define UTX_CTS_STAT 0x0200 /* CTS State */#define UTX_BUSY 0x0400 /* FIFO is busy, sending a character */#define UTX_NOCTS 0x0800 /* Ignore CTS */#define UTX_SEND_BREAK 0x1000 /* Send a BREAK */#define UTX_TX_AVAIL 0x2000 /* Transmit FIFO has a slot available */#define UTX_FIFO_HALF 0x4000 /* Transmit FIFO is half empty */#define UTX_FIFO_EMPTY 0x8000 /* Transmit FIFO is empty *//* '328-compatible definitions */#define UTX_CTS_STATUS UTX_CTS_STAT#define UTX_IGNORE_CTS UTX_NOCTS/* * UART Miscellaneous Register */#define UMISC_ADDR 0xfffff908#define UMISC WORD_REF(UMISC_ADDR)#define UMISC_TX_POL 0x0004 /* Transmit Polarity */#define UMISC_RX_POL 0x0008 /* Receive Polarity */#define UMISC_IRDA_LOOP 0x0010 /* IrDA Loopback Enable */#define UMISC_IRDA_EN 0x0020 /* Infra-Red Enable */#define UMISC_RTS 0x0040 /* Set RTS status */#define UMISC_RTSCONT 0x0080 /* Choose RTS control */#define UMISC_IR_TEST 0x0400 /* IRDA Test Enable */#define UMISC_BAUD_RESET 0x0800 /* Reset Baud Rate Generation Counters */#define UMISC_LOOP 0x1000 /* Serial Loopback Enable */#define UMISC_FORCE_PERR 0x2000 /* Force Parity Error */#define UMISC_CLKSRC 0x4000 /* Clock Source */#define UMISC_BAUD_TEST 0x8000 /* Enable Baud Test Mode *//* * UART Non-integer Prescaler Register */#define NIPR_ADDR 0xfffff90a#define NIPR WORD_REF(NIPR_ADDR)#define NIPR_STEP_VALUE_MASK 0x00ff /* NI prescaler step value */#define NIPR_STEP_VALUE_SHIFT 0#define NIPR_SELECT_MASK 0x0700 /* Tap Selection */#define NIPR_SELECT_SHIFT 8#define NIPR_PRE_SEL 0x8000 /* Non-integer prescaler select *//* generalization of uart control registers to support multiple ports: *//*typedef struct { volatile unsigned short int ustcnt __attribute__((packed)); volatile unsigned short int ubaud __attribute__((packed)); union { volatile unsigned short int w __attribute__((packed)); struct { volatile unsigned char status __attribute__((packed)); volatile unsigned char rxdata __attribute__((packed)); } b; } urx; union { volatile unsigned short int w __attribute__((packed)); struct { volatile unsigned char status __attribute__((packed)); volatile unsigned char txdata __attribute__((packed)); } b; } utx; volatile unsigned short int umisc __attribute__((packed)); volatile unsigned short int nipr __attribute__((packed));} m68328_uart;*//********** * * 0xFFFFFAxx -- LCD Controller * **********/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -