Specifications

Program Examples
B-12
;===========================================================================
; SPI Initialization
;===========================================================================
SPI_INIT: LDP #SPICCR>>7
SPLK #000Fh, SPICCR ;16 char bits,
SPLK #0006h, SPICTL ;Enable master mode, normal clock
;and enable talk.
SPLK #0002h, SPIBRR ;Set up the SPI to max speed.
LDP #MCRB>>7 ;Set up the GPIO pins to function
SPLK #003CH, MCRB ;as SPI pins
LDP #SPICCR>>7
SPLK #008Fh, SPICCR ;Relinquish SPI from Reset.
;===========================================================================
; This section generates the sawtooth by ramping a counter down to zero
; reloading it every time it under–flows.
;===========================================================================;
LP: LAR AR0,#07FEh ;Load AR0 with a count
XMIT_VALUE: LDP #0
SAR AR0,GPR0
LACC GPR0
ADD #8000H ;MSB should be one (DAC requirement)
XOR #07FFH ;To change the direction of counting to
;upward
LDP #SPITXBUF>>7
SACL SPITXBUF ;Write xmit value to SPI Trasmit Buffer.
LDP #SPISTS>>7
XMIT_RDY: BIT SPISTS,BIT6 ;Test SPI_INT bit
BCND XMIT_RDY, NTC ;If SPI_INT=0,then repeat loop
;i.e. wait for the completion of
;transmission.
LDP #SPIRXBUF>>7 ;else read SPIRXBUF
LACC SPIRXBUF ;dummy read to clear SPI_INT flag.
KICK_DOG
MAR *,AR0
BANZ XMIT_VALUE ;xmit next value, if counter is non zero.
B LP ;if counter reaches zero repeat loop
;re–loading the counter.
PHANTOM RET
GISR1 RET
GISR2 RET
GISR3 RET
GISR4 RET
GISR5 RET
GISR6 RET