xf.asm

来自「dsp芯片TMS320C5416实验程序」· 汇编 代码 · 共 42 行

ASM
42
字号
**************************************************************************
* 最简单的程序:exp1.asm
* 循环对XF位置1和清0,用示波器可以在XF脚检测到电平高低周期性变化
* 常用于检测DSP是否工作。
**************************************************************************
			.mmregs					;预定义的寄存器
			.def 	CodeEntry		;定义程序入口标记
			
			.text					;程序区
CodeEntry:							;程序入口
			SSBX 	XF				;XF置1
			
			RPT 	#999			;重复执行1000次空指令产生延时
			NOP
			CALL 	Delay
			
			RSBX 	XF				;XF清0
			
			RPT 	#999			;重复执行1000次空指令产生延时
			NOP				
			CALL 	Delay
			
			B 		CodeEntry		;跳转到程序开头循环执行

**************************************************************************
* 延时子程序:Delay
* 用两级减一计数器来延时。调整AR1和AR2的大小可以实现不同的延时
**************************************************************************
Delay:		
			STM 	#99,AR1		;循环次数1000
LOOP1:		STM		#4999, AR2		;循环次数5000
LOOP2:		BANZ	LOOP2,*AR2-		;如果AR2不等于0,AR2减1,再判断
			BANZ	LOOP1,*AR1-		;如果AR1不等于0,AR1减1,跳转到LOOP1
			RET
**************************************************************************
* 注意这种延时方法并不精确,需要精确定时必须用定时器。
* 按此法延时的近似公式为:4*(AR2+1)*(AR1+1)*时钟周期
* 当DSP工作在50MHz(时钟周期20ns),AR1=999, AR2=4999时
* 延时约为400ms,则LED闪烁的周期为800ms,频率1.25Hz
**************************************************************************

			.end

⌨️ 快捷键说明

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