Software Overview
64
SLAA040
STEP4: XF = 1 ; wait for TW(CSTARTL) and set CSTART
call STORE ; store the last sample into the table
.if INT0_DRIVEN
return ; return from routine back to IRQ_INT0
.else
goto STEP5 ; go back to receive next sample
.endif
**********************************
* STORE:
* saving the samples into memory
**********************************
STORE:
.if (SEND_OUT_PARALLEL)
* store sample into the parallel buffer location if choosen
port(DAC1) = @ADSAMPLE ; update DAC output
.endif
.if SAVE_INTO_MEMORY
* store new sample into DSP data memory
*AR7+ = data(@ADSAMPLE) ; write last sample into memory table
.endif
.if SEND_OUT_SERIAL
* store sample into the serial buffer location
DP = #00000h ; point to page zero
TC = bitf(@SPC,#01000h) ; test, is the XRDY Bit in SPC=1?
if (TC) goto SEND_SERIAL_END ; don’t send something until XDR is empty
; this has been included because the serial DAC TLC5618A is not able to understand
; endless data-stream (the CS should not become high before end of sending
; the 16th bit)
DP = #AD_DP ; reset Data page pointer to variables
A = @ADSAMPLE<<2 ; leftshift of the sample for a 12 bit format
@ADSAMPLE = A ;
@ADSAMPLE |= #(TLC5618_LATCH_A|TLC5618_FAST_MODE|TLC5618_POWER_UP) ; set the mode of the
DAC
data(BDXR) = @ADSAMPLE ; send out the sample to the serial DAC
SEND_SERIAL_END:
.endif
.if SAVE_INTO_MEMORY
* test for table end, set pointer back if true
TC = (AR0 ==AR7) ; is AR0 = AR7? (table end reached?)
if (NTC) goto STORE_END ;
* set pointer back to table start
Summary of Contents for TLV1562
Page 6: ...vi SLAA040 ...