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

📄 bsf_filter.s43

📁 Efficient MSP430 Code Synthesis for an FIR Filter
💻 S43
字号:
/******************************************************************************
;   Digital FIR Filter to perform Band-stop filtering
;
;   Description: This code implements a 30th order Digital FIR Filter on 
;                the MSP430. The filter response is Band Stop with the 
;                following specifications. 
;                Sampling frequency       = 2000 Hz
;                Lower cut-off frequency  = 200 Hz
;	         Upper cut-off frequency  = 800 Hz
;	         Filter type 		  = FIR
;
;   K. Venkat
;   Texas Instruments Inc.
;   Mar 2007
;   Built with IAR Embedded Workbench Version: 3.42A
;*******************************************************************************/
//IAR generated
#include <msp430x14x.h>


		PUBLIC FIR_filter
		RSEG	 CODE
		EXTERN input_delay1
		EXTERN input_delay2
		EXTERN input_delay3
		EXTERN input_delay4
		EXTERN input_delay5
		EXTERN input_delay6
		EXTERN input_delay7
		EXTERN input_delay8
		EXTERN input_delay9
		EXTERN input_delay10
		EXTERN input_delay11
		EXTERN input_delay12
		EXTERN input_delay13
		EXTERN input_delay14
		EXTERN input_delay15
		EXTERN input_delay16
		EXTERN input_delay17
		EXTERN input_delay18
		EXTERN input_delay19
		EXTERN input_delay20
		EXTERN input_delay21
		EXTERN input_delay22
		EXTERN input_delay23
		EXTERN input_delay24
		EXTERN input_delay25
		EXTERN input_delay26
		EXTERN input_delay27
		EXTERN input_delay28
		EXTERN input_delay29
		EXTERN input_delay30
		EXTERN input_delay0,output
FIR_filter:

			;Stage 0


			;Stage 1

			mov.w &input_delay1,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 2


			;Stage 3

			mov.w &input_delay3,R12
			mov.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 4


			;Stage 5


			;Stage 6


			;Stage 7

			mov.w &input_delay7,R12
			mov.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			sub.w R14,&output

			;Stage 8


			;Stage 9

			mov.w &input_delay9,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,R13
			rra.w R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			sub.w R14,&output

			;Stage 10


			;Stage 11

			mov.w &input_delay11,R12
			mov.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 12


			;Stage 13

			mov.w &input_delay13,R12
			mov.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 14


			;Stage 15

			mov.w &input_delay15,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 16


			;Stage 17

			mov.w &input_delay17,R12
			mov.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 18


			;Stage 19

			mov.w &input_delay19,R12
			mov.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 20


			;Stage 21

			mov.w &input_delay21,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,R13
			rra.w R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			sub.w R14,&output

			;Stage 22


			;Stage 23

			mov.w &input_delay23,R12
			mov.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			sub.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			sub.w R14,&output

			;Stage 24


			;Stage 25


			;Stage 26


			;Stage 27

			mov.w &input_delay27,R12
			mov.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 28


			;Stage 29

			mov.w &input_delay29,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,R13
			rra.w R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 30

			mov.w &input_delay29,&input_delay30
			mov.w &input_delay28,&input_delay29
			mov.w &input_delay27,&input_delay28
			mov.w &input_delay26,&input_delay27
			mov.w &input_delay25,&input_delay26
			mov.w &input_delay24,&input_delay25
			mov.w &input_delay23,&input_delay24
			mov.w &input_delay22,&input_delay23
			mov.w &input_delay21,&input_delay22
			mov.w &input_delay20,&input_delay21
			mov.w &input_delay19,&input_delay20
			mov.w &input_delay18,&input_delay19
			mov.w &input_delay17,&input_delay18
			mov.w &input_delay16,&input_delay17
			mov.w &input_delay15,&input_delay16
			mov.w &input_delay14,&input_delay15
			mov.w &input_delay13,&input_delay14
			mov.w &input_delay12,&input_delay13
			mov.w &input_delay11,&input_delay12
			mov.w &input_delay10,&input_delay11
			mov.w &input_delay9,&input_delay10
			mov.w &input_delay8,&input_delay9
			mov.w &input_delay7,&input_delay8
			mov.w &input_delay6,&input_delay7
			mov.w &input_delay5,&input_delay6
			mov.w &input_delay4,&input_delay5
			mov.w &input_delay3,&input_delay4
			mov.w &input_delay2,&input_delay3
			mov.w &input_delay1,&input_delay2
			mov.w &input_delay0,&input_delay1
			ret
			END

⌨️ 快捷键说明

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