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

📄 timer.c

📁 dsp2407源程序
💻 C
字号:
			.include  "F2407REGS.H" 		;引用头部文件
.def      _c_int0
(1)建立中断向量表
			.sect	".vectors"				;定义主向量段
RSVECT		B    _c_int0				;PM 0	复位向量  			1
INT1	  		B    PHANTOM			;PM 2	中断优先级1			4
INT2	  		B    GISR2			;PM 4	中断优先级2			5
INT3	  		B    PHANTOM			;PM 6	中断优先级3			6
INT4	  		B    PHANTOM			;PM 8	中断优先级4			7
INT5	  		B    PHANTOM			;PM A	中断优先级5			8
INT6	  		B    PHANTOM			;PM C	中断优先级6			9
RESERVED  	B    PHANTOM			;PM E	 模拟量输入中断(保留)	10
SW_INT8   	B    PHANTOM			;PM 10  	用户定义软件中断   		-
SW_INT31  	B    PHANTOM			;PM 3E  	用户定义软件中断 		-
;中断子向量入口定义pvecs
			.sect	".pvecs"				;定义子向量段
PVECTORS	B	PHANTOM			;保留向量地址偏移量-0000h 
			B	PHANTOM			;保留向量地址偏移量-0001h
			B	PHANTOM			;保留向量地址偏移量-0026h
			B	T1PINT_ISR			;保留向量地址偏移量-0027h   T1PINT中断
			B	PHANTOM			;保留向量地址偏移量-0028h
			B	PHANTOM			;保留向量地址偏移量-0041h	
(2)主程序
         	.text
_c_int0    
		SETC 	INTM
        	CLRC 	SXM
       	CLRC 	OVM
		CLRC 	CNF					;B0区被配置为数据空间
        	LDP 		#0E0H				;指向7000h~7080h区
        	SPLK 	#81FEH,SCSR1   		;时钟4倍频,CLKIN=6 M,CLKOUT=24 M
         	SPLK		#0E8H,WDCR			;不使能WDT
         	LDP		#0
		SPLK		#02H,IMR			;使能中断优先级INT2
		SPLK		#0FFFFh,IFR			;清中断标志
		LDP		#DP_EVA				;指向7400h~7480h区
		SPLK		#80H,EVAIMRA		;使能T1PINT 中断
		SPLK		#0FFFFh,EVAIFRA		;清EVA中断标志
		SPLK		#0,GPTCONA
		SPLK		#177H,T1PR			;使定时器每1ms产生一次中断
		SPLK		#0,T1CNT
SPLK		#0164CH,T1CON		;TMODE=10 连续增计数模式,TPS=110 预分频为64
								;TENABLE=1 定时器计数使能, TCLKS=00 
;内部时钟
								;TECMPR=1 定时器1比较使能, SELT1PR=0 
		CLRC	INTM				;开总中断
  WAIT:	NOP
		B		WAIT
(3)中断程序
GISR2:								;优先级INT2中断入口
		保护现场
		LDP		#0E0H
		LACC	PIVR,1				;读取外设中断向量寄存器(PIVR),并左移一位
		ADD		#PVECTORS			;加上外设中断入口地址
		BACC						;跳到相应的中断服务子程序
T1PINT_ISR:							;通用定时器1中断入口
		LDP		#DP_EVA	
		SPLK		#0,T1CNT
GISR2_RET:							;中断返回
		恢复现场
		CLRC	INTM				;开总中断,因为一进中断就自动关闭总中断
		RET
(3)假中断程序
PHANTOM 	
KICK_DOG					;复位看门狗
		RET
		END

⌨️ 快捷键说明

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