Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

                ifndef  __ez8cominc
__ez8cominc     equ     1
                save
                listing off             ; no listing over this file

;****************************************************************************
;*                                                                          *
;*   AS 1.42 - File F0830.INC                                               *
;*                                                                          *
;*   Contains Bit & Register Definitions valid for all Z8encore CPUs        *
;*                                                                          *
;****************************************************************************

;----------------------------------------------------------------------------
; CPU Core

FLAGS           sfr     0ffch           ; Flags
RP              sfr     0ffdh           ; Register pointer
SPH             sfr     0ffeh           ; Stack pointer high byte
SPL             sfr     0fffh           ; Stack pointer low byte
SP              sfr     SPH

;----------------------------------------------------------------------------
; GPIO

__defgpio       macro   NUM,Base
P{NUM}ADDR      sfr     Base+0          ; Port n (subregister) Address
P{NUM}CTL       sfr     Base+1          ; Port n (subregister) Control
P{NUM}DD        sfr     P{NUM}CTL       ; Port n Data Direction (subregister 1)
P{NUM}AF        sfr     P{NUM}CTL       ; Port n Alternate Function (subregister 2)
P{NUM}OC        sfr     P{NUM}CTL       ; Port n Output Control (Open-Drain) (subregister 3)
P{NUM}HDE       sfr     P{NUM}CTL       ; Port n High Drive Enable (subregister 4)
P{NUM}SMRE      sfr     P{NUM}CTL       ; Port n Stop Mode Recovery Source Enable (subregister 5)
P{NUM}PUE       sfr     P{NUM}CTL       ; Port n Pull-Up Enable (subregister 6)
P{NUM}AFS1      sfr     P{NUM}CTL       ; Port n Alternate Function Set 1 (subregister 7)
P{NUM}AFS2      sfr     P{NUM}CTL       ; Port n Alternate Function Set 2 (subregister 8)
P{NUM}IN        sfr     Base+2          ; Port n Input Data
P{NUM}OUT       sfr     Base+3          ; Port n Output Data
                endm

;----------------------------------------------------------------------------
; Timer

__deftimer      macro   NUM,Base,HasInpCap,Chain
T{NUM}H         sfr     Base            ; Timer High Byte
T{NUM}L         sfr     Base+1          ; Timer Low Byte
T{NUM}          sfr     T{NUM}H
T{NUM}RH        sfr     Base+2          ; Timer Reload High Byte
T{NUM}RL        sfr     Base+3          ; Timer Reload Low Byte
T{NUM}R         sfr     T{NUM}RH
T{NUM}PWMH      sfr     Base+4          ; Timer PWM High Byte
T{NUM}PWML      sfr     Base+5          ; Timer PWM Low Byte
T{NUM}PWM       sfr     T{NUM}PWMH
T{NUM}CTL0      sfr     Base+6          ; Timer Control 0
                if      HasInpCap
T{NUM}MODEHI     __z8bit    T{NUM}CTL0,7;  Timer Mode
T{NUM}ICONFIG    __z8bfield T{NUM}CTL0,5,2 ;  Timer Interrupt Configuration
T{NUM}PWMD       __z8bfield T{NUM}CTL0,1,3 ;  Timer PWM Delay Value
T{NUM}INPCAP     __z8bit    T{NUM}CTL0,0;  Timer Input Capture Event
                endif
                if      Chain
T{NUM}CSC        __z8bit    T{NUM}CTL0,4;  Cascade Timers
                endif
T{NUM}CTL1      sfr     Base+7          ; Timer Control 1
T{NUM}TEN       __z8bit T{NUM}CTL1,7    ;  Timer Enable
T{NUM}TPOL      __z8bit T{NUM}CTL1,6    ;  Timer Input/Output Polarity
T{NUM}PRES      __z8bfield T{NUM}CTL1,3,3 ;  Prescale Value
T{NUM}TMODE     __z8bfield T{NUM}CTL1,0,3 ;  Timer Mode
                endm

;----------------------------------------------------------------------------
; Multi-Channel Timer

__defmct        macro
MCTH            sfr     0fa0h           ; MCT High Byte
MCTL            sfr     0fa1h           ; MCT Low Byte
MCT             sfr     MCTH
MCTRH           sfr     0fa2h           ; MCT Reload High Byte
MCTRL           sfr     0fa3h           ; MCT Reload Low Byte
MCTR            sfr     MCTRH
MCTSA           sfr     0fa4h           ; MCT Subaddress
MCTSR0          sfr     0fa5h           ; MCT Subregister 0
TCTST           __z8bit MCTSR0,7        ;  Timer Count Status (MCTCTL0, MCTSA=00)
CHST            __z8bit MCTSR0,6        ;  Channel Status (MCTCTL0, MCTSA=00)
TCIEN           __z8bit MCTSR0,5        ;  Timer Count Interrupt Enable (MCTCTL0, MCTSA=00)
TCLKS           __z8bit MCTSR0,0,3      ;  Timer Clock Source (MCTCTL0, MCTSA=00)
CHDEO           __z8bit MCTSR0,3        ;  Channel D Event Flag Overrun (MCTCHS0, MCTSA=01)
CHCEO           __z8bit MCTSR0,2        ;  Channel C Event Flag Overrun (MCTCHS0, MCTSA=01)
CHBEO           __z8bit MCTSR0,1        ;  Channel B Event Flag Overrun (MCTCHS0, MCTSA=01)
CHAEO           __z8bit MCTSR0,0        ;  Channel A Event Flag Overrun (MCTCHS0, MCTSA=01)
CHDH            __z8bfield MCTSR0,0,8   ;  Channel D Cap/Com Value High (MCTCHDH, MCTSA=05)
CHCH            __z8bfield MCTSR0,0,8   ;  Channel C Cap/Com Value High (MCTCHCH, MCTSA=04)
CHBH            __z8bfield MCTSR0,0,8   ;  Channel B Cap/Com Value High (MCTCHBH, MCTSA=03)
CHAH            __z8bfield MCTSR0,0,8   ;  Channel A Cap/Com Value High (MCTCHAH, MCTSA=02)
MCTSR1          sfr     0fa6h           ; MCT Subregister 1
TEN             __z8bit MCTSR1,7        ;  Timer Enable (MCTCTL1, MCTSA=00)
PRES            __z8bfield MCTSR1,3,3   ;  Prescale Value (MCTCTL1, MCTSA=00)
TMODE           __z8bfield MCTSR1,0,2   ;  Timer Mode (MCTCTL1, MCTSA=00)
CHDEF           __z8bit MCTSR1,3        ;  Channel D Event Flag (MCTCHS1, MCTSA=01)
CHCEF           __z8bit MCTSR1,2        ;  Channel C Event Flag (MCTCHS1, MCTSA=01)
CHBEF           __z8bit MCTSR1,1        ;  Channel B Event Flag (MCTCHS1, MCTSA=01)
CHAEF           __z8bit MCTSR1,0        ;  Channel A Event Flag (MCTCHS1, MCTSA=01)
CHDL            __z8bfield MCTSR0,0,8   ;  Channel D Cap/Com Value Low (MCTCHDL, MCTSA=05)
CHCL            __z8bfield MCTSR0,0,8   ;  Channel C Cap/Com Value Low (MCTCHCL, MCTSA=04)
CHBL            __z8bfield MCTSR0,0,8   ;  Channel B Cap/Com Value Low (MCTCHBL, MCTSA=03)
CHAL            __z8bfield MCTSR0,0,8   ;  Channel A Cap/Com Value Low (MCTCHAL, MCTSA=02)
MCTSR2          sfr     0fa7h           ; MCT Subregister 2
CHEN            __z8bit MCTSR2,7        ;  Channel Enable (MCTCHyCTL, MCTSA=02...05)
CHPOL           __z8bit MCTSR2,6        ;  Channel Input/Output Polarity (MCTCHyCTL, MCTSA=02...05)
CHIEN           __z8bit MCTSR2,5        ;  Channel Interrupt Enable (MCTCHyCTL, MCTSA=02...05)
CHUE            __z8bit MCTSR2,4        ;  Channel Update Enable (MCTCHyCTL, MCTSA=02...05)
CHOP            __z8bfield MCTSR2,0,3   ;  Channel Operation Method (MCTCHyCTL, MCTSA=02...05)
                endm

;----------------------------------------------------------------------------
; UART

__defuart       macro   NUM,Base
U{NUM}TXD       sfr     Base            ; UART Transmit Data Register
U{NUM}RXD       sfr     Base            ; UART Receive Data Register
U{NUM}STAT0     sfr     Base+1          ; UART Status 0 Register
U{NUM}RDA       __z8bit U{NUM}STAT0,7   ;  Receive Data Available
U{NUM}PE        __z8bit U{NUM}STAT0,6   ;  Parity Error
U{NUM}OE        __z8bit U{NUM}STAT0,5   ;  Overrun Error
U{NUM}FE        __z8bit U{NUM}STAT0,4   ;  Framing Error
U{NUM}BRKD      __z8bit U{NUM}STAT0,3   ;  Break Detect
U{NUM}TDRE      __z8bit U{NUM}STAT0,2   ;  Transmitter Data Register Empty
U{NUM}TXE       __z8bit U{NUM}STAT0,1   ;  Transmitter Empty
U{NUM}CTS       __z8bit U{NUM}STAT0,0   ;  /CTS Signal
U{NUM}STAT1     sfr     Base+4          ; UART Status 1 Register
U{NUM}NEWFRM    __z8bit U{NUM}STAT1,1   ;  New Frame
U{NUM}MPRX      __z8bit U{NUM}STAT1,0   ;  Multiprocessor Receive
U{NUM}CTL0      sfr     Base+2          ; UART Control 0 Register
U{NUM}TEN       __z8bit U{NUM}CTL0,7    ;  Transmit Enable
U{NUM}REN       __z8bit U{NUM}CTL0,6    ;  Receive Enable
U{NUM}CTSE      __z8bit U{NUM}CTL0,5    ;  CTSE-CTS Enable
U{NUM}PEN       __z8bit U{NUM}CTL0,4    ;  Parity Enable
U{NUM}PSEL      __z8bit U{NUM}CTL0,3    ;  Parity Select
U{NUM}SBRK      __z8bit U{NUM}CTL0,2    ;  Send Break
U{NUM}USTOP     __z8bit U{NUM}CTL0,1    ;  Stop Bit Select
U{NUM}LBEN      __z8bit U{NUM}CTL0,0    ;  Loop Back Enable
U{NUM}CTL1      sfr     Base+3          ; UART Control 1 Register
U{NUM}MPMD1     __z8bit U{NUM}CTL1,7    ;  Multiprocessor Mode
U{NUM}MPEN      __z8bit U{NUM}CTL1,6    ;  Multiprocessor (9-bit) Enable
U{NUM}MPMD0     __z8bit U{NUM}CTL1,5    ;  Multiprocessor Mode
U{NUM}MPBT      __z8bit U{NUM}CTL1,4    ;  Multiprocessor Bit Transmit
U{NUM}DEPOL     __z8bit U{NUM}CTL1,3    ;  Driver Enable Polarity
U{NUM}BRGCTL    __z8bit U{NUM}CTL1,2    ;  Baud Rate Control
U{NUM}RDAIRQ    __z8bit U{NUM}CTL1,1    ;  Receive Data Interrupt Enable
U{NUM}IREN      __z8bit U{NUM}CTL1,0    ;  Infrared Encoder/Decoder Enable
U{NUM}ADDR      sfr     Base+5          ; UART Address Compare Register
U{NUM}BRH       sfr     Base+6          ; UART Baud Rate High Byte Register
U{NUM}BRL       sfr     Base+7          ; UART Baud Rate Low Byte Register
U{NUM}BR        sfr     U{NUM}BRH
                endm
                
;----------------------------------------------------------------------------
; I2C

__defi2c        macro   Base
I2CDATA         sfr     Base+0          ; I2C Data
I2CSTAT         sfr     Base+1          ; I2C Status
I2C_TDRE        __z8bit I2CSTAT,7       ;  Transmit Data Register Empty
RDRF            __z8bit I2CSTAT,6       ;  Receive Data Register Full
ACK             __z8bit I2CSTAT,5       ;  Acknowledge
I10B            __z8bit I2CSTAT,4       ;  10-Bit Address
RD              __z8bit I2CSTAT,3       ;  Read
TAS             __z8bit I2CSTAT,2       ;  Transmit Address State
DSS             __z8bit I2CSTAT,1       ;  Data Shift State
NCKI            __z8bit I2CSTAT,0       ;  NACK Interrupt
I2CCTL          sfr     Base+2          ; I2C Control
IEN             __z8bit I2CCTL,7        ;  I2C Enable
START           __z8bit I2CCTL,6        ;  Send Start Condition
STOP            __z8bit I2CCTL,5        ;  Send Stop Condition
I2C_BIRQ        __z8bit I2CCTL,4        ;  Baud Rate Generator Interrupt Request
TXI             __z8bit I2CCTL,3        ;  Enable TDRE interrupts
NAK             __z8bit I2CCTL,2        ;  Send NAK
FLUSH           __z8bit I2CCTL,1        ;  Flush Data
FILTEN          __z8bit I2CCTL,0        ;  I2C Signal Filter Enable
I2CBRH          sfr     Base+3          ; I2C Baud Rate High Byte
I2CBRL          sfr     Base+4          ; I2C Baud Rate Low Byte
I2CBR           sfr     I2CBRH
I2CDST          sfr     Base+5          ; I2C Diagnostic State
SCLIN           __z8bit I2CDST,7        ;  Serial Clock Input
SDAIN           __z8bit I2CDST,6        ;  Serial Data Input
STPCNT          __z8bit I2CDST,5        ;  Stop Count
TXRXSTATE       __z8bfield I2CDST,0,5   ;  Internal State
I2CDIAG         sfr     Base+6          ; I2C Diagnostic Control
I2C_DIAG        __z8bit I2CDIAG,0       ;  Diagnostic Control Bit
                endm

;----------------------------------------------------------------------------
; SPI

__defspi        macro   Base
SPIDATA         sfr     Base+0          ; SPI Data
SPICTL          sfr     Base+1          ; SPI Control
SPI_IRQE        __z8bit SPICTL,7        ;  Interrupt Request Enable
STR             __z8bit SPICTL,6        ;  Start an SPI Interrupt Request
SPI_BIRQ        __z8bit SPICTL,5        ;  BRG Timer Interrupt Request
PHASE           __z8bit SPICTL,4        ;  Phase Select
CLKPOL          __z8bit SPICTL,3        ;  Clock Polarity
WOR             __z8bit SPICTL,2        ;  Wire-OR (Open-Drain) Mode Enabled
MMEN            __z8bit SPICTL,1        ;  SPI MASTER Mode Enable
SPIEN           __z8bit SPICTL,0        ;  SPI Enable
SPISTAT         sfr     Base+2          ; SPI Status
IRQ             __z8bit SPISTAT,7       ;  Interrupt Request
OVR             __z8bit SPISTAT,6       ;  Overrun
COL             __z8bit SPISTAT,5       ;  Collision
ABT             __z8bit SPISTAT,4       ;  SLAVE Mode Transaction Abort
TXST            __z8bit SPISTAT,1       ;  Transmit Status
SLAS            __z8bit SPISTAT,0       ;  Slave Select
SPIMODE         sfr     Base+3          ; SPI Mode
SPI_DIAG        __z8bit SPIMODE,5       ;  Diagnostic Mode Control Bit
NUMBITS         __z8bfield SPIMODE,2,3  ;  Number of Data Bits Per Character to Transfer
SSIO            __z8bit SPIMODE,1       ;  Slave Select I/O
SSV             __z8bit SPIMODE,0       ;  Slave Select Value
SPIDST          sfr     Base+4          ; SPI Diagnostic State
SCKEN           __z8bit SPIDST,7        ;  Shift Clock Enable
TCKEN           __z8bit SPIDST,6        ;  Transmit Clock Enable
SPISTATE        __z8bfield SPIDST,0,6   ;  SPI State Machine
SPIBRH          sfr     Base+6          ; SPI Baud Rate High Byte
SPIBRL          sfr     Base+7          ; SPI Baud Rate Low Byte
SPIBR           sfr     SPIBRH
                endm

;----------------------------------------------------------------------------

                restore

                endif                   ; __ez8cominc