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

📄 bpf_filter.s43

📁 Efficient MSP430 Code Synthesis for an FIR Filter
💻 S43
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
;   Digital FIR Filter to perform Band-pass filtering
;
;   Description: This code implements a 40th order Digital FIR Filter on 
;                the MSP430. The filter response is Band Pass with the 
;                following specifications. 
;                Sampling frequency       = 6000 Hz
;                Lower cut-off frequency  = 500 Hz
;	         Upper cut-off frequency  = 1500 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_delay31
		EXTERN input_delay32
		EXTERN input_delay33
		EXTERN input_delay34
		EXTERN input_delay35
		EXTERN input_delay36
		EXTERN input_delay37
		EXTERN input_delay38
		EXTERN input_delay39
		EXTERN input_delay40
		EXTERN input_delay0,output
FIR_filter:

			;Stage 0

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

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

			;Stage 2


			;Stage 3

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

			;Stage 4

			mov.w &input_delay4,R12
			mov.w R12,R13
			inv.w R13
			add.w #1,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
			sub.w R14,&output

			;Stage 5

			mov.w &input_delay5,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
			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
			sub.w R14,&output

			;Stage 6

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

			;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
			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 8


			;Stage 9

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

			;Stage 11

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

			;Stage 12

			mov.w &input_delay12,R12
			mov.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
			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
			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
			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
			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 14


			;Stage 15

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

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

			;Stage 18

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

⌨️ 快捷键说明

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