w_filter.asm

来自「DSP关于F2407的实例程序」· 汇编 代码 · 共 81 行

ASM
81
字号
;===================================================================== 
; File name	:	W_FILTER.asm
; Module Name	: 	OMIGA_FILTER,OMIGA_FILTER_INIT
; Description	:	求平均值滤波器
;	
;
;			|~~~~~~~~~~~~~~~|
;			|		|
;	OmigaR0	o---->	|     FILTER	|----->o OMIGA_FILTER_RESULT
;  (OMIGA_FILTER_Y1-8)|		|
;			|______________	|
; 2004.9.23
;===================================================================== 
		.include "f2407.h"
		
		.global	OMIGA_FILTER_INIT,OMIGA_FILTER		;function call
		
		.global	OmigaR0				;input
		.global	OMIGA_FILTER_Y1,OMIGA_FILTER_Y2,OMIGA_FILTER_Y3,OMIGA_FILTER_Y4
		.global	OMIGA_FILTER_Y5,OMIGA_FILTER_Y6,OMIGA_FILTER_Y7,OMIGA_FILTER_Y8
		.global	OMIGA_FILTER_RESULT
		
;===================================================================== 
OMIGA_FILTER_INIT:
;===================================================================== 
		LDP	#DP_DATA
		SPLK	#0,OMIGA_FILTER_RESULT		
		SPLK	#0,OMIGA_FILTER_Y1
		SPLK	#0,OMIGA_FILTER_Y2
		SPLK	#0,OMIGA_FILTER_Y3
		SPLK	#0,OMIGA_FILTER_Y4
		SPLK	#0,OMIGA_FILTER_Y5
		SPLK	#0,OMIGA_FILTER_Y6
		SPLK	#0,OMIGA_FILTER_Y7
		SPLK	#0,OMIGA_FILTER_Y8
		RET
;===================================================================== 
OMIGA_FILTER:
;===================================================================== 		
		SPM	0
		SETC	SXM			
;-----------------------------------------------------------
		LDP	#DP_DATA
		LACC	OmigaR0
		SACL	OMIGA_FILTER_Y1	;OmigaR0暂存到OMIGA_FILTER_Y1
;-------------
;计算8个值的平均值。 
		
		LACC	OMIGA_FILTER_Y1
		ADD	OMIGA_FILTER_Y2
		ADD	OMIGA_FILTER_Y3
		ADD	OMIGA_FILTER_Y4
	;	ADD	OMIGA_FILTER_Y5
	;	ADD	OMIGA_FILTER_Y6
	;	ADD	OMIGA_FILTER_Y7
	;	ADD	OMIGA_FILTER_Y8
	;	SFR
		SFR
		SFR				;右移三位,相当/8。
		SACL	OMIGA_FILTER_RESULT	;滤波结果。
;---------------
;把Y值前移。
	;	LACC	OMIGA_FILTER_Y7
	;	SACL	OMIGA_FILTER_Y8
	;	LACC	OMIGA_FILTER_Y6
	;	SACL	OMIGA_FILTER_Y7
	;	LACC	OMIGA_FILTER_Y5
	;	SACL	OMIGA_FILTER_Y6
	;	LACC	OMIGA_FILTER_Y4
	;	SACL	OMIGA_FILTER_Y5
		LACC	OMIGA_FILTER_Y3
		SACL	OMIGA_FILTER_Y4
		LACC	OMIGA_FILTER_Y2
		SACL	OMIGA_FILTER_Y3
		LACC	OMIGA_FILTER_Y1
		SACL	OMIGA_FILTER_Y2
;---------------------------------------------------------------------------		
		SPM	0
		SETC	SXM
		RET	
	

⌨️ 快捷键说明

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