Blame | Last modification | View Log | Download | RSS feed
ifndef __ez8cominc__ez8cominc equ 1savelisting off ; no listing over this file;****************************************************************************;* *;* AS 1.42 - File F0830.INC *;* *;* Contains Bit & Register Definitions valid for all Z8encore CPUs *;* *;****************************************************************************;----------------------------------------------------------------------------; CPU CoreFLAGS sfr 0ffch ; FlagsRP sfr 0ffdh ; Register pointerSPH sfr 0ffeh ; Stack pointer high byteSPL sfr 0fffh ; Stack pointer low byteSP sfr SPH;----------------------------------------------------------------------------; GPIO__defgpio macro NUM,BaseP{NUM}ADDR sfr Base+0 ; Port n (subregister) AddressP{NUM}CTL sfr Base+1 ; Port n (subregister) ControlP{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 DataP{NUM}OUT sfr Base+3 ; Port n Output Dataendm;----------------------------------------------------------------------------; Timer__deftimer macro NUM,Base,HasInpCap,ChainT{NUM}H sfr Base ; Timer High ByteT{NUM}L sfr Base+1 ; Timer Low ByteT{NUM} sfr T{NUM}HT{NUM}RH sfr Base+2 ; Timer Reload High ByteT{NUM}RL sfr Base+3 ; Timer Reload Low ByteT{NUM}R sfr T{NUM}RHT{NUM}PWMH sfr Base+4 ; Timer PWM High ByteT{NUM}PWML sfr Base+5 ; Timer PWM Low ByteT{NUM}PWM sfr T{NUM}PWMHT{NUM}CTL0 sfr Base+6 ; Timer Control 0if HasInpCapT{NUM}MODEHI __z8bit T{NUM}CTL0,7; Timer ModeT{NUM}ICONFIG __z8bfield T{NUM}CTL0,5,2 ; Timer Interrupt ConfigurationT{NUM}PWMD __z8bfield T{NUM}CTL0,1,3 ; Timer PWM Delay ValueT{NUM}INPCAP __z8bit T{NUM}CTL0,0; Timer Input Capture Eventendifif ChainT{NUM}CSC __z8bit T{NUM}CTL0,4; Cascade TimersendifT{NUM}CTL1 sfr Base+7 ; Timer Control 1T{NUM}TEN __z8bit T{NUM}CTL1,7 ; Timer EnableT{NUM}TPOL __z8bit T{NUM}CTL1,6 ; Timer Input/Output PolarityT{NUM}PRES __z8bfield T{NUM}CTL1,3,3 ; Prescale ValueT{NUM}TMODE __z8bfield T{NUM}CTL1,0,3 ; Timer Modeendm;----------------------------------------------------------------------------; Multi-Channel Timer__defmct macroMCTH sfr 0fa0h ; MCT High ByteMCTL sfr 0fa1h ; MCT Low ByteMCT sfr MCTHMCTRH sfr 0fa2h ; MCT Reload High ByteMCTRL sfr 0fa3h ; MCT Reload Low ByteMCTR sfr MCTRHMCTSA sfr 0fa4h ; MCT SubaddressMCTSR0 sfr 0fa5h ; MCT Subregister 0TCTST __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 1TEN __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 2CHEN __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,BaseU{NUM}TXD sfr Base ; UART Transmit Data RegisterU{NUM}RXD sfr Base ; UART Receive Data RegisterU{NUM}STAT0 sfr Base+1 ; UART Status 0 RegisterU{NUM}RDA __z8bit U{NUM}STAT0,7 ; Receive Data AvailableU{NUM}PE __z8bit U{NUM}STAT0,6 ; Parity ErrorU{NUM}OE __z8bit U{NUM}STAT0,5 ; Overrun ErrorU{NUM}FE __z8bit U{NUM}STAT0,4 ; Framing ErrorU{NUM}BRKD __z8bit U{NUM}STAT0,3 ; Break DetectU{NUM}TDRE __z8bit U{NUM}STAT0,2 ; Transmitter Data Register EmptyU{NUM}TXE __z8bit U{NUM}STAT0,1 ; Transmitter EmptyU{NUM}CTS __z8bit U{NUM}STAT0,0 ; /CTS SignalU{NUM}STAT1 sfr Base+4 ; UART Status 1 RegisterU{NUM}NEWFRM __z8bit U{NUM}STAT1,1 ; New FrameU{NUM}MPRX __z8bit U{NUM}STAT1,0 ; Multiprocessor ReceiveU{NUM}CTL0 sfr Base+2 ; UART Control 0 RegisterU{NUM}TEN __z8bit U{NUM}CTL0,7 ; Transmit EnableU{NUM}REN __z8bit U{NUM}CTL0,6 ; Receive EnableU{NUM}CTSE __z8bit U{NUM}CTL0,5 ; CTSE-CTS EnableU{NUM}PEN __z8bit U{NUM}CTL0,4 ; Parity EnableU{NUM}PSEL __z8bit U{NUM}CTL0,3 ; Parity SelectU{NUM}SBRK __z8bit U{NUM}CTL0,2 ; Send BreakU{NUM}USTOP __z8bit U{NUM}CTL0,1 ; Stop Bit SelectU{NUM}LBEN __z8bit U{NUM}CTL0,0 ; Loop Back EnableU{NUM}CTL1 sfr Base+3 ; UART Control 1 RegisterU{NUM}MPMD1 __z8bit U{NUM}CTL1,7 ; Multiprocessor ModeU{NUM}MPEN __z8bit U{NUM}CTL1,6 ; Multiprocessor (9-bit) EnableU{NUM}MPMD0 __z8bit U{NUM}CTL1,5 ; Multiprocessor ModeU{NUM}MPBT __z8bit U{NUM}CTL1,4 ; Multiprocessor Bit TransmitU{NUM}DEPOL __z8bit U{NUM}CTL1,3 ; Driver Enable PolarityU{NUM}BRGCTL __z8bit U{NUM}CTL1,2 ; Baud Rate ControlU{NUM}RDAIRQ __z8bit U{NUM}CTL1,1 ; Receive Data Interrupt EnableU{NUM}IREN __z8bit U{NUM}CTL1,0 ; Infrared Encoder/Decoder EnableU{NUM}ADDR sfr Base+5 ; UART Address Compare RegisterU{NUM}BRH sfr Base+6 ; UART Baud Rate High Byte RegisterU{NUM}BRL sfr Base+7 ; UART Baud Rate Low Byte RegisterU{NUM}BR sfr U{NUM}BRHendm;----------------------------------------------------------------------------; I2C__defi2c macro BaseI2CDATA sfr Base+0 ; I2C DataI2CSTAT sfr Base+1 ; I2C StatusI2C_TDRE __z8bit I2CSTAT,7 ; Transmit Data Register EmptyRDRF __z8bit I2CSTAT,6 ; Receive Data Register FullACK __z8bit I2CSTAT,5 ; AcknowledgeI10B __z8bit I2CSTAT,4 ; 10-Bit AddressRD __z8bit I2CSTAT,3 ; ReadTAS __z8bit I2CSTAT,2 ; Transmit Address StateDSS __z8bit I2CSTAT,1 ; Data Shift StateNCKI __z8bit I2CSTAT,0 ; NACK InterruptI2CCTL sfr Base+2 ; I2C ControlIEN __z8bit I2CCTL,7 ; I2C EnableSTART __z8bit I2CCTL,6 ; Send Start ConditionSTOP __z8bit I2CCTL,5 ; Send Stop ConditionI2C_BIRQ __z8bit I2CCTL,4 ; Baud Rate Generator Interrupt RequestTXI __z8bit I2CCTL,3 ; Enable TDRE interruptsNAK __z8bit I2CCTL,2 ; Send NAKFLUSH __z8bit I2CCTL,1 ; Flush DataFILTEN __z8bit I2CCTL,0 ; I2C Signal Filter EnableI2CBRH sfr Base+3 ; I2C Baud Rate High ByteI2CBRL sfr Base+4 ; I2C Baud Rate Low ByteI2CBR sfr I2CBRHI2CDST sfr Base+5 ; I2C Diagnostic StateSCLIN __z8bit I2CDST,7 ; Serial Clock InputSDAIN __z8bit I2CDST,6 ; Serial Data InputSTPCNT __z8bit I2CDST,5 ; Stop CountTXRXSTATE __z8bfield I2CDST,0,5 ; Internal StateI2CDIAG sfr Base+6 ; I2C Diagnostic ControlI2C_DIAG __z8bit I2CDIAG,0 ; Diagnostic Control Bitendm;----------------------------------------------------------------------------; SPI__defspi macro BaseSPIDATA sfr Base+0 ; SPI DataSPICTL sfr Base+1 ; SPI ControlSPI_IRQE __z8bit SPICTL,7 ; Interrupt Request EnableSTR __z8bit SPICTL,6 ; Start an SPI Interrupt RequestSPI_BIRQ __z8bit SPICTL,5 ; BRG Timer Interrupt RequestPHASE __z8bit SPICTL,4 ; Phase SelectCLKPOL __z8bit SPICTL,3 ; Clock PolarityWOR __z8bit SPICTL,2 ; Wire-OR (Open-Drain) Mode EnabledMMEN __z8bit SPICTL,1 ; SPI MASTER Mode EnableSPIEN __z8bit SPICTL,0 ; SPI EnableSPISTAT sfr Base+2 ; SPI StatusIRQ __z8bit SPISTAT,7 ; Interrupt RequestOVR __z8bit SPISTAT,6 ; OverrunCOL __z8bit SPISTAT,5 ; CollisionABT __z8bit SPISTAT,4 ; SLAVE Mode Transaction AbortTXST __z8bit SPISTAT,1 ; Transmit StatusSLAS __z8bit SPISTAT,0 ; Slave SelectSPIMODE sfr Base+3 ; SPI ModeSPI_DIAG __z8bit SPIMODE,5 ; Diagnostic Mode Control BitNUMBITS __z8bfield SPIMODE,2,3 ; Number of Data Bits Per Character to TransferSSIO __z8bit SPIMODE,1 ; Slave Select I/OSSV __z8bit SPIMODE,0 ; Slave Select ValueSPIDST sfr Base+4 ; SPI Diagnostic StateSCKEN __z8bit SPIDST,7 ; Shift Clock EnableTCKEN __z8bit SPIDST,6 ; Transmit Clock EnableSPISTATE __z8bfield SPIDST,0,6 ; SPI State MachineSPIBRH sfr Base+6 ; SPI Baud Rate High ByteSPIBRL sfr Base+7 ; SPI Baud Rate Low ByteSPIBR sfr SPIBRHendm;----------------------------------------------------------------------------restoreendif ; __ez8cominc