FIR低通滤波
HIGHPASS .set 0 ;if you want to use ,please set the value to 1
BANDPASS .set 0
LOWPASS .set 1
.global start,fir
.mmregs
COFF_FIR_START: .sect "coff_fir"
.if LOWPASS
.include "lowpasslowpass.inc"
.elseif BANDPASS
.include "bandpassandpass.inc"
.else
.include "highpasshighpass.inc"
.endif
K_FIR_BFFR .set 32
d_data_buffer .usect "fir_bfr",64
FIR_DP .usect "fir_vars",0
d_filin .usect "fir_vars",1
d_filout .usect "fir_vars",100h
output .usect "fir_vars",1
.asg AR4,FIR_DATA_P
.asg AR6,INBUF_P
.asg AR7,OUTBUF_P
.asg AR3,OUTBUF
.sect "fir_prog"
nop
start:
LD #FIR_DP,DP
STM #d_data_buffer,FIR_DATA_P
RPTZ A,#K_FIR_BFFR-1
STL A,*FIR_DATA_P+
STM #d_filin,INBUF_P
STM #d_filout,OUTBUF_P
STM #output,OUTBUF
STM #100h,BK
fir_loop:
NOP ;Add Breakpoint & porbe point
LD *INBUF_P,A
CALL fir
STH A,*OUTBUF_P+%
STH A,*OUTBUF
main_end:
b fir_loop
fir:
; SSBX SXM
; SSBX FRCT
STM #d_data_buffer,FIR_DATA_P
STL A,*FIR_DATA_P
STM #(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P
fir_task:
RPTZ A,#K_FIR_BFFR-1
MACD *FIR_DATA_P-,COFF_FIR_START,A
RET
.end
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
.set可以认为是赋值操作,对一个数据
.sect也是赋值,但是是对一块数据
.usect同上,但是不给具体的值,只是开辟一块空间
.asg可以认为是重命名
.globle就是定义成全局变量
一周热门 更多>