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

📄 lpf_filter.s43

📁 Efficient MSP430 Code Synthesis for an FIR Filter
💻 S43
字号:
/******************************************************************************
;   Digital FIR Filter to perform Low-pass filtering
;
;   Description: This code implements a 20th order Digital FIR Filter on 
;                the MSP430. The filter response is Low Pass with the 
;                following specifications. 
;                Sampling frequency       = 4000 Hz
;                Cut-off frequency        = 600 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_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
			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
			rra.w R13
			rra.w R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 2

			mov.w &input_delay2,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,R13
			rra.w R13
			rra.w 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
			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 3

			mov.w &input_delay3,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
			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
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 4

			mov.w &input_delay4,R12
			mov.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
			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
			rra.w R13
			rra.w R13
			mov.w R13,R14
			sub.w R14,&output

			;Stage 5

			mov.w &input_delay5,R12
			mov.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
			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 6

			mov.w &input_delay6,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,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
			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 7

			mov.w &input_delay7,R12
			mov.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
			sub.w R12,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
			mov.w R13,R14
			add.w R14,&output

			;Stage 8

			mov.w &input_delay8,R12
			mov.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
			sub.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
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 9

			mov.w &input_delay9,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
			rra.w 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 10

			mov.w &input_delay10,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
			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
			rra.w R13
			add.w R12,R13
			rra.w R13
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 11

			mov.w &input_delay11,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
			rra.w 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 12

			mov.w &input_delay12,R12
			mov.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
			sub.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
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 13

			mov.w &input_delay13,R12
			mov.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
			sub.w R12,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
			mov.w R13,R14
			add.w R14,&output

			;Stage 14

			mov.w &input_delay14,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,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
			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 15

			mov.w &input_delay15,R12
			mov.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
			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 16

			mov.w &input_delay16,R12
			mov.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
			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
			rra.w R13
			rra.w R13
			mov.w R13,R14
			sub.w R14,&output

			;Stage 17

			mov.w &input_delay17,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
			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
			rra.w R13
			mov.w R13,R14
			add.w R14,&output

			;Stage 18

			mov.w &input_delay18,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,R13
			rra.w R13
			rra.w 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
			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 19

			mov.w &input_delay19,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,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
			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 20

			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 + -