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