⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad.asm

📁 卓氏向量中断程序
💻 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 + -