📄 iir_bwt.asm
字号:
;===========================================================================
; File Name: IIR_BWT.asm
;
; Module Name: IIR_BWT4
;
; Initialization Routine: IIR_BWT4_INIT
;
;
; Description:This is a four_order digital filter
;
; Target dependency: C2xx core only
;
;
;=====================================================================================
; .ref IIR_BWT4, IIR_BWT4_INIT ;function call
; .ref Xin_IIR ;Inputs
; .ref Yout_IIR ;Outputs
;===========================================================================
;Module definitions for external reference.
.def IIR_BWT4, IIR_BWT4_INIT ;function call
.def Xin_IIR ;Inputs
.def Yout_IIR
.def WAY ;Outputs
;===========================================================================
;Global vars
FIRX .usect "FIR_D",127
FIRY .usect "FIR_Q",127
Xin_IIR .usect "IIR_BWT0" ,1
Yout_IIR .usect "IIR_BWT0" ,1
WAY .usect "IIR_BWT0" ,1
H0 .usect "IIR_BWT4" , 1
H1 .usect "IIR_BWT4" , 1
H2 .usect "IIR_BWT4" , 1
H3 .usect "IIR_BWT4" , 1
H4 .usect "IIR_BWT4" , 1
XN_1 .usect "IIR_BWT4" , 1
XN_2 .usect "IIR_BWT4" , 1
YN_1 .usect "IIR_BWT4" , 1
YN_2 .usect "IIR_BWT4" , 1
XN_10 .usect "IIR_BWT4" , 1
XN_20 .usect "IIR_BWT4" , 1
YN_10 .usect "IIR_BWT4" , 1
YN_20 .usect "IIR_BWT4" , 1
XN_100 .usect "IIR_BWT4" , 1
XN_200 .usect "IIR_BWT4" , 1
YN_100 .usect "IIR_BWT4" , 1
YN_200 .usect "IIR_BWT4" , 1
;WAY .usect "IIR_BWT4" , 1
;===============
IIR_BWT4_INIT:
;===============
LDP #Xin_IIR
SPLK #0,Xin_IIR
SPLK #0,Yout_IIR
******fs=360Hz******
SPLK #912, H0
SPLK #1825, H1
SPLK #912, H2
SPLK #24173, H3
SPLK #46303, H4
*****fs=400Hz******
; SPLK #1100,H0
; SPLK #2200,H1
; SPLK #1100,H2
; SPLK #23249,H3
; SPLK #47406,H4
*****fS=500Hz*****
; SPLK #1622,H0
; SPLK #3243,H1
; SPLK #1622,H2
; SPLK #20965,H3
; SPLK #49886,H4
*****fS=600Hz*****
; SPLK #2210,H0
; SPLK #4421,H1
; SPLK #2210,H2
; SPLK #18727,H3
; SPLK #52009,H4
*****fS=700Hz*****
; SPLK #2857,H0
; SPLK #5713,H1
; SPLK #2857,H2
; SPLK #16530,H3
; SPLK #53817,H4
*******************
SPLK #0,XN_1
SPLK #0,XN_2
SPLK #0,YN_1
SPLK #0,YN_2
SPLK #0,XN_10
SPLK #0,XN_20
SPLK #0,YN_10
SPLK #0,YN_20
SPLK #0,XN_100
SPLK #0,XN_200
SPLK #0,YN_100
SPLK #0,YN_200
SPLK #0,WAY
RET
;===========================================================================
; Routine Name: IIR_BWT4
;===========================================================================
IIR_BWT4:
SETC SXM ; Sign extension mode
SETC OVM ; Overflow mode
SPM 1 ; SPM set for Q15 multiplication
; SPM 0
LDP #Xin_IIR
LACC WAY
BCND IIR_1,GT
LACC #0
LT H0
MPY Xin_IIR
LTA H1
MPY XN_1
LTA H2
MPY XN_2
LTA H3
MPY YN_1
LTA H3
MPY YN_1
LTA H4
MPY YN_2
APAC
SACH Yout_IIR
BLDD #XN_1,XN_2
BLDD #Xin_IIR,XN_1
BLDD #YN_1,YN_2
BLDD #Yout_IIR,YN_1
LACC WAY
ADD #1
SACL WAY
B IIR_3
IIR_1 NOP
NOP
LACC WAY
SUB #1
BCND IIR_2,GT
LACC #0
LT H0
MPY Xin_IIR
LTA H1
MPY XN_10
LTA H2
MPY XN_20
LTA H3
MPY YN_10
LTA H3
MPY YN_10
LTA H4
MPY YN_20
APAC
SACH Yout_IIR
BLDD #XN_10,XN_20
BLDD #Xin_IIR,XN_10
BLDD #YN_10,YN_20
BLDD #Yout_IIR,YN_10
LACC WAY
ADD #1
SACL WAY
B IIR_3
IIR_2 NOP
NOP
LACC #0
LT H0
MPY Xin_IIR
LTA H1
MPY XN_100
LTA H2
MPY XN_200
LTA H3
MPY YN_100
LTA H3
MPY YN_100
LTA H4
MPY YN_200
APAC
SACH Yout_IIR
BLDD #XN_100,XN_200
BLDD #Xin_IIR,XN_100
BLDD #YN_100,YN_200
BLDD #Yout_IIR,YN_100
LACC WAY
SUB #2
SACL WAY
IIR_3 NOP
NOP
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -