?? ad.asm
字號:
;*************************************************************
; File Name : Ad.asm
; Originator : Texas Instrument-Chongqing University DSPs Lab.
; Description: LF2407 DSK 32 Points FFT Algorithms Test Program
; Author : Zhuo Qingfeng
; Last Update: 7-14-2001
;**************************************************************
; INPUT : NO
; OUTPUT :The sample result store in 0x800-0x9ff(i.e.0x800--
; 0x81f-->channel0,0x820--0x83f-->channel1...),flag.1
; (0x60h) indicates AD conv.completion.
; USED REGS.:ACC,DP,ST0,ST1,AR0,AR1,AR2,ADCOUNT,flag and Timer4
;***************************************************************
ADRESULT .usect ".ad",16*32 ;Samples-->SRAM(0800H--0A00H)
ADCOUNT .usect ".ad",1
ADCHANN .usect ".ad",1 ;FFT Channel NO.
DP_PF2 .set 225
DP_EVB .set 234
DP_SARAM2 .set 20 ;Page of SARAM(A00H/80H)
T4CNT .set 7505h ; T2 Counter
T4PER .set 7507h ; T2 Period
T4CON .set 7508h
GPTCONB .set 7500h
EVBIMRB .set 752dh
EVBIFRB .set 7530h
ADCTRL1 .set 70A0h ; ADC Control reg 1
ADCTRL2 .set 70A1h ; ADC Control reg 2
MAXCONV .set 70A2h ; Maximum conversions in sequence
CHSELSEQ1 .set 70A3h ; Channel select fields: Results 3,2,1,0
CHSELSEQ2 .set 70A4h ; Channel select fields: Results 7,6,5,4
CHSELSEQ3 .set 70A5h ; Channel select fields: Results 11,10,9,8
CHSELSEQ4 .set 70A6h ; Channel select fields: Results 15,14,13,12
RESULT0 .set 70A8h ; Conversion result 0
.def ADINIT,ADCINT_ISR,AD,ADRESULT,ADCHANN
.ref INT1RET,flag
.text
;---------------------------------------
ADINIT:
LDP #DP_EVB ;Timer4 Setting
SPLK #0000H,T4CNT
SPLK #170CH,T4CON ;Continuous-up,x/128 174CH
SPLK #075H,T4PER ;24M,20ms/32
SPLK #0400H,GPTCONB
SPLK #0FFFFH,EVBIFRB
SPLK #0000H,EVBIMRB ;Disable all Timer4 Int.
LDP #DP_PF2
SPLK #0010H,ADCTRL1 ;24M,Disable Cal&Sel-test
SPLK #8404H,ADCTRL2 ;Start/Stop Mode,Int.1
SPLK #000FH,MAXCONV ;16 Channels
SPLK #3210H,CHSELSEQ1
SPLK #7654H,CHSELSEQ2
SPLK #0BA98H,CHSELSEQ3
SPLK #0FEDCH,CHSELSEQ4
LDP #DP_SARAM2 ;0A00H/80H
SPLK #ADRESULT,ADCOUNT
RET
;-----------------------------------
AD: LDP #0
LACL flag
AND #0FFFDH ;Clear flag.1
SACL flag
LDP #DP_EVB ;AD starting Sub.
LACL T4CON
OR #40H ;Start Timer4-->Start AD
SACL T4CON
RET
;-----------------------------------
ADCINT_ISR:
CLRC SXM
LDP #DP_SARAM2 ;0A00H/80H
LAR AR1,ADCOUNT
LAR AR0,#15 ;16 Channels
LAR AR2,#RESULT0
MAR *,AR2
ADC1 LACC *+,10,AR1
SACH *
ADRK #32
MAR *,AR0
BANZ ADC1,*-,AR2
LDP #DP_PF2
LACL ADCTRL2
OR #4000H ;Set bit14--Reset SEQ1
AND #0FFDFH ;Clear bit9--INT FLAG SEQ1
SACL ADCTRL2
LDP #DP_SARAM2
LACL ADCOUNT
SUB #ADRESULT+31
BCND ADC2,GEQ
ADD #ADRESULT+32 ;<32
SACL ADCOUNT
B INT1RET
ADC2: SPLK #ADRESULT,ADCOUNT ;=32
LDP #0
LACL flag
OR #2H ;Set flag.1
SACL flag
LDP #DP_EVB
LACL T4CON
AND #0FFBFH ;Stop Timer4-->Stop AD
SACL T4CON
B INT1RET
;-----------------------------------
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -