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

📄 cap.asm

📁 DSP的汇编程序
💻 ASM
字号:
        .include  "F2407REGS.H"           ;引用头部文件
        .def      _c_int0
        
        .data
CAP4TEMP .word		0        
        
		.sect     ".vectors"              ;定义主向量段

RSVECT      B   _c_int0             ;PM 0   Reset Vector        1
INT1        B   PHANTOM             ;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   GISR4               ;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 Int    3
EMU_TRAP    B   PHANTOM             ;PM 26  Emulator Trap       2
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        -

        .sect   ".pvecs"            ;定义子向量段
PVECTORS
        B       PHANTOM             ;Reserved pvector addr offset-0000h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0005h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-000ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0010h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0015h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-001Ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0020h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0025h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;pvector addr offset 0x027h - T1PINT中断
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-002Ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;pvector addr offset 0x02f - T3PINT
        B       PHANTOM             ;Reserved pvector addr offset-0030h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0035h
        B       CAP4_ISR            ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-003aAh
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-003Fh
        B       PHANTOM             ;pvector addr offset 0x040h - CAN接收中断
        B       PHANTOM             ;Reserved pvector addr offset-0041h

        .text
_c_int0 
		LDP		#CAP4TEMP			;DP_B0
		SPLK	#00H, CAP4TEMP
		CALL	SYSINIT
		CALL	CAP_INIT			;调CAP4初始化程序
LOOP
		NOP
		B		LOOP

SYSINIT: 
        SETC    INTM
        CLRC    SXM
        CLRC    OVM
        CLRC    CNF                 ;B0区被配置为数据空间
        LDP     #0E0H               ;指向7000h~7080h区
        SPLK    #81FEH, SCSR1       ;时钟4倍频, CLKIN=10 M, CLKOUT=40 M
        SPLK    #0E8H, WDCR         ;不使能WDT
        LDP     #0
        SPLK    #0008H, IMR         ;使能中断第4级INT4
        SPLK    #0FFFFH, IFR        ;清全部中断标志
        RET

CAP_INIT: 
		LDP		#DP_PF2				;指向7090h~7100h
		LACL	MCRC
		OR		#0380H  			;IOPE7,  IOPF0,  IOPF1 被配置为
									;特殊功能方式: CAP[4~6]
		SACL	MCRC				
		SETC 	INTM
		LDP		#DP_EVB
		SPLK 	#049H, GPTCONB		;TCOMPOE=1, T4PIN=10, T3PIN=01 
		SPLK	#0, T3CNT
		SPLK   	#01742H, T3CON 		;TMODE=10 连续向上计数模式, TPS=111 
									;预分频为128
									;TENABLE=1 定时器计数使能,  TCLKS=00 
									;内部时钟
									;TCLD=00,  TECMPR=1 定时器3比较
									;使能,  SELT3PR=0
		SPLK 	#0FFFFH, T3PR		;定时器周期比较寄存器设为最大
		SPLK 	#00H, EVBIMRA
		SPLK 	#00H, EVBIMRB
		SPLK 	#22C0H, CAPCONB		;CAP4 捕获允许, 捕获上升沿
		SPLK 	#01H, EVBIMRC		;CAP4 中断使能
		SPLK 	#0FFFFh, EVBIFRA 	;清 EVB 全部中断标志
		SPLK 	#0FFFFh, EVBIFRB
		SPLK 	#0FFFFh, EVBIFRC
		CLRC 	INTM 				;开总中断
		RET	

GISR4: 								;优先级INT4中断人口
									;保护现场
		LDP		#0E0H
		LACC	PIVR, 1				;读取外设中断向量寄存器(PIVR), 并左移一位
		ADD		#PVECTORS			;加上外设中断人口地址
		BACC						;跳到相应的中断服务子程序
CAP4_ISR: 							;捕获单元4中断程序入口
		LDP 	#DP_EVB
		LACL	CAP4FIFO
		LDP		#CAP4TEMP			;DP_B0
		SACL	CAP4TEMP			;读出捕获的值
		LDP		#DP_EVB
		SPLK	#0, T3CNT			;清 T3 计数值, 使其重新计数

		SPLK 	#01h, EVBIFRC
		
GISR2_RET: 							;中断返回
									;恢复现场
		CLRC	INTM				;开总中断, 因为一进中断就自动关闭总中断
		RET

PHANTOM
        ;KICK_DOG                   ;复位看门狗
        RET
        END

⌨️ 快捷键说明

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