📄 fir_filt.asm
字号:
;
; fir_filt.asm - Generic FIR filter
;
; prototype: unsigned int fir_filt(int *, unsigned int, int *,
; unsigned int, int *, int *, unsigned int);
;
; Entry: arg0: AR0 - filter input sample buffer pointer
; arg1: T0 - number of samples in input buffer
; arg2: AR1 - FIR coefficients array pointer
; arg3: T1 - FIR filter order
; arg4: AR2 - output sample buffer pointer
; arg5: AR3 - delayline buffer pointer
; arg6: AR4 - delayline buffer index
;
; Return: T0 = Delayline buffer index
;
N0 .set 48
N1 .set 48
Ns .set 128
.def _fir_filt
.ref _LP_coef,_in,_d_fir
.sect "fir_code"
_fir_filt
pshm ar2
pshm ar3
pshm st0
pshm st1
ssbx frct
ssbx sxm
stm #_in,ar3
stm #_d_fir,ar2
ld *ar3+,a
stl a,*ar2 ; input new data !
addm #N1-1,*(ar2)
rptz a,#N1-1
macd *ar2-, #_LP_coef,a
popm st1
popm st0
popm ar3
popm ar2
ret
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -