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

📄 adc.asm

📁 DSP的数模转换模块,对数据进据排序,模数转换,
💻 ASM
字号:
st0_temp	.usect		".b20",1			;60
st1_temp	.usect		".b20",1			;61
context	 	.usect		".b20",7			;62-68
STACK       .usect		".stack",40          

ADCOUNT	    .usect	 	".data0",1		;288
ADRESULT	.usect	 	".data0",1		;289

            .include  	"F2407REGS.H" 	;引用头部文件
            .def      	_c_int0

;#################################################
;(1)建立中断向量表
			.sect	".vectors"			;定义主向量段
RSVECT	    B    _c_int0		;PM 0	Reset Vector	1
INT1	  	B    GISR1		    ;PM 2	Int level 1		4
INT2	  	B    PHANTOM		;PM 4	Int level 2		5
INT3	  	B    PHANTOM		;PM 6	Int level 3		6
INT4	  	B    PHANTOM		;PM 8	Int level 4		7
INT5	  	B    PHANTOM		;PM A	Int level 5		8
INT6	  	B    PHANTOM		;PM C	Int level 6		9
RESERVED  	B    PHANTOM		;PM E	(Analysis Int)	10
SW_INT8   	B    PHANTOM		;PM 10  	User S/W int	-
SW_INT9   	B    PHANTOM		;PM 12  	User S/W int	-
SW_INT10   	B    PHANTOM		;PM 14  	User S/W int	-
SW_INT11   	B    PHANTOM		;PM 16  	User S/W int	-
SW_INT12   	B    PHANTOM		;PM 18  	User S/W int	-
SW_INT13   	B    PHANTOM		;PM 1A  	User S/W int	-
SW_INT14   	B    PHANTOM		;PM 1C  	User S/W int	-
SW_INT15   	B    PHANTOM		;PM 1E  	User S/W int	-
SW_INT16   	B    PHANTOM		;PM 20  	User S/W int	-
TRAP    	B    PHANTOM		;PM 22  	Trap vector	    -
NMI      	B    PHANTOM		;PM 24  	Non maskable Int3
EMU_TRAP   	B    PHANTOM		;PM 26  	Emulator Trap2	-
SW_INT20   	B    PHANTOM		;PM 28  	User S/W int	-
SW_INT21   	B    PHANTOM		;PM 2A  	User S/W int	-
SW_INT22   	B    PHANTOM		;PM 2C  	User S/W int	-
SW_INT23   	B    PHANTOM		;PM 2E  	User S/W int	-
SW_INT24   	B    PHANTOM		;PM 30  	User S/W int	-
SW_INT25   	B    PHANTOM		;PM 32  	User S/W int	-
SW_INT26   	B    PHANTOM		;PM 34  	User S/W int	-
SW_INT27   	B    PHANTOM		;PM 36  	User S/W int	-
SW_INT28   	B    PHANTOM		;PM 38  	User S/W int	-
SW_INT29   	B    PHANTOM		;PM 3A  	User S/W int	-
SW_INT30   	B    PHANTOM		;PM 3C  	User S/W int	-
SW_INT31  	B    PHANTOM		;PM 3E  	User S/W int	-
;中断子向量入口定义pvecs
			.sect	".pvecs"			;定义子向量段
PVECTORS	B	PHANTOM		;Reserved pvector addr offset-00H 
			B	PHANTOM		;Reserved pvector addr offset-01H
  			B	PHANTOM		;Reserved pvector addr offset-02H
  			B	PHANTOM		;Reserved pvector addr offset-03H
  			B	ADCINT_ISR	;Reserved pvector addr offset-04H  ADC中断
  			B	PHANTOM		;Reserved pvector addr offset-05H
  			B	PHANTOM		;Reserved pvector addr offset-06H
  			B	PHANTOM		;Reserved pvector addr offset-07H
  			B	PHANTOM		;Reserved pvector addr offset-08H
  			B	PHANTOM		;Reserved pvector addr offset-09H
  			B	PHANTOM		;Reserved pvector addr offset-0AH
  			B	PHANTOM		;Reserved pvector addr offset-0BH
  			B	PHANTOM		;Reserved pvector addr offset-0CH
  			B	PHANTOM		;Reserved pvector addr offset-0DH
  			B	PHANTOM		;Reserved pvector addr offset-0EH
  			B	PHANTOM		;Reserved pvector addr offset-0FH
  			B	PHANTOM		;Reserved pvector addr offset-10H
  			B	PHANTOM		;Reserved pvector addr offset-11H
  			B	PHANTOM		;Reserved pvector addr offset-12H
  			B	PHANTOM		;Reserved pvector addr offset-13H
  			B	PHANTOM		;Reserved pvector addr offset-14H
  			B	PHANTOM		;Reserved pvector addr offset-15H
  			B	PHANTOM		;Reserved pvector addr offset-16H		
			B	PHANTOM		;Reserved pvector addr offset-17H
			B	PHANTOM		;Reserved pvector addr offset-18H
  			B	PHANTOM		;Reserved pvector addr offset-19H
  			B	PHANTOM		;Reserved pvector addr offset-1AH
  			B	PHANTOM		;Reserved pvector addr offset-1BH
  			B	PHANTOM		;Reserved pvector addr offset-1CH
  			B	PHANTOM		;Reserved pvector addr offset-1DH
  			B	PHANTOM		;Reserved pvector addr offset-1EH
  			B	PHANTOM		;Reserved pvector addr offset-1FH
  			B	PHANTOM		;Reserved pvector addr offset-20H
  			B	PHANTOM		;Reserved pvector addr offset-21H
  			B	PHANTOM		;Reserved pvector addr offset-22H
  			B	PHANTOM		;Reserved pvector addr offset-23H
  			B	PHANTOM		;Reserved pvector addr offset-24H
  			B	PHANTOM		;Reserved pvector addr offset-25H
  			B	PHANTOM		;Reserved pvector addr offset-26H
  			B	PHANTOM  	;Reserved pvector addr offset-27H 
			B	PHANTOM		;Reserved pvector addr offset-28H
  			B	PHANTOM		;Reserved pvector addr offset-29H
  			B	PHANTOM		;Reserved pvector addr offset-2AH
  			B	PHANTOM		;Reserved pvector addr offset-2BH
  			B	PHANTOM		;Reserved pvector addr offset-2CH
  			B	PHANTOM		;Reserved pvector addr offset-2DH
  			B	PHANTOM		;Reserved pvector addr offset-2EH
  			B	PHANTOM		;Reserved pvector addr offset-2FH
  			B	PHANTOM		;Reserved pvector addr offset-30H
  			B	PHANTOM		;Reserved pvector addr offset-31H
  			B	PHANTOM		;Reserved pvector addr offset-32H
  			B	PHANTOM		;Reserved pvector addr offset-33H
  			B	PHANTOM		;Reserved pvector addr offset-34H
  			B	PHANTOM		;Reserved pvector addr offset-35H
  			B	PHANTOM		;Reserved pvector addr offset-36H
  			B	PHANTOM		;Reserved pvector addr offset-37H
  			B	PHANTOM		;Reserved pvector addr offset-38H
  			B	PHANTOM		;Reserved pvector addr offset-39H
  			B	PHANTOM		;Reserved pvector addr offset-3AH
  			B	PHANTOM		;Reserved pvector addr offset-3BH
  			B	PHANTOM		;Reserved pvector addr offset-3CH
  			B	PHANTOM		;Reserved pvector addr offset-3DH
  			B	PHANTOM		;Reserved pvector addr offset-3EH
  			B	PHANTOM		;Reserved pvector addr offset-3FH
  			B	PHANTOM		;Reserved pvector addr offset-40H		
			B	PHANTOM		;Reserved pvector addr offset-41H

; (2)主程序:
        .text
_c_int0    
        SETC 	INTM
    	CLRC 	SXM
    	CLRC 	OVM
        CLRC 	CNF	
        LDP 	#0E0H
        SPLK	#81FEH,SCSR1	;CLKIN=6M,CLKOUT=24M 
        SPLK	#0E8h,WDCR		;关看门狗
        LDP		#0
		SPLK	#0001h,IMR		;允许INT1中断
		SPLK	#0FFFFh,IFR	;清所有中断标志
     	CALL	ADINIT          ;初始化ADC程序
		CLRC	INTM			;开总中断
     	CALL	AD             	;启动模数转换程序
WAIT: 	NOP  
     	B		WAIT
;(3)ADC初始化程序
ADINIT: 
      LDP	#234      			;设置通用定时器4
      SPLK	#0000H,T4CNT
      SPLK	#170CH,T4CON 
      SPLK	#075H,T4PR
      SPLK	#0400H,GPTCONB
      SPLK	#0FFFFH,EVBIFRB
      SPLK	#0000H,EVBIMRB 	
      LDP	#DP_PF2
      SPLK	#0010H,ADCCTRL1  		;设置ADC控制寄存器
      SPLK	#8404H,ADCCTRL2  	
      SPLK	#000FH,MAXCONV 		;16 通道
      SPLK	#3210H,CHSELSEQ1
      SPLK	#7654H,CHSELSEQ2
      SPLK	#0BA98H,CHSELSEQ3
      SPLK	#0FEDCH,CHSELSEQ4
      LDP	#DP_SARAM2     		;指向0A00H-0A80H
      SPLK	#ADRESULT,ADCOUNT
      RET
;(4)启动模数转换程序
AD:
      LDP		#234
      LACL	    T4CON
      OR		#40H            	;启动定时器4
      SACL	    T4CON
      RET
;(5)中断程序
GISR1:								;优先级INT1中断子程序入口
		;保护现场
		LDP     #0              ;保存机器上下文
		SST		#0,st0_temp	    ;使用自动寻址,DP-0 
		SST		#1,st1_temp	    ;保存状态寄存器到B2 DARAM.
		LDP		#0			  
        SACL	context			;保存ACC的低16位
		SACH	context+1		;保存ACC的高16位
		SAR		AR1,context+2
		SAR		AR2,context+3
		SAR		AR3,context+4
		SAR		AR4,context+5		
		SAR		AR5,context+6
	  LDP		#0E0H
	  LACC	    PIVR,1				;读取外设中断向量寄存器(PIVR),并左移一位
	  ADD		#PVECTORS			;加上外设中断人口地址
	  BACC						;跳到相应的中断服务子程序
ADCINT_ISR:
      CLRC 	    SXM
      LDP		#DP_SARAM2
      LAR		AR1,ADCOUNT
      LAR		AR0,#15 
      LAR		AR2,#RESULT0
      MAR		*,AR2
ADC1: LACC	    *+,10,AR1
      SACH	    *
      ADRK   	#32
      MAR		*,AR0
      BANZ   	ADC1,*-,AR2
      LDP		#DP_PF2
      LACL	    ADCCTRL2
      OR		#4000H         		;复位SEQ1
      AND		#0FFDFH         	;清INT FLAG SEQ1
      SACL	    ADCCTRL2
      LDP		#DP_SARAM2 
      LACL	    ADCOUNT
      SUB		#ADRESULT+31
      BCND	    ADC2,GEQ
      ADD		#ADRESULT+32    	;<32
      SACL	    ADCOUNT
      B		    GISR1_RET
ADC2:	
      SPLK		#ADRESULT,ADCOUNT 	;=32
      LACL	    T4CON
      AND		#0FFBFH          		;停止定时器4,即停止AD转换
      SACL	    T4CON
      B		    GISR1_RET
GISR1_RET:							;中断返回出口
	;恢复现场
		LDP		#DP_EVA
		SPLK	#0FFFFH,EVAIFRA
		LDP		#0
		LAR		AR5,context+6	
		LAR		AR4,context+5	
		LAR		AR3,context+4		
		LAR		AR2,context+3		
		LAR		AR1,context+2
		LACC	context+1,16
		ADDS	context
		LST		#1, st1_temp
		LST		#0, st0_temp
		CLRC	INTM				;开总中断,因为一进中断就自动关闭了总中断
		RET
;(6)假中断程序
PHANTOM 	
        KICK_DOG					;复位看门狗
		RET
     	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -