📄 iir_bwt1.asm
字号:
;===========================================================================
; File Name: IIR_BWT1.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_BWT41, IIR_BWT41_INIT ;function call
.def Xin_IIR1 ;Inputs
.def Yout_IIR1
.def WAY1 ;Outputs
;===========================================================================
;Global vars
;FIRX1 .usect "FIR_D",127
;FIRY1 .usect "FIR_Q",127
Xin_IIR1 .usect "IIR_BWT0" ,1
Yout_IIR1 .usect "IIR_BWT0" ,1
WAY1 .usect "IIR_BWT0" ,1
H01 .usect "IIR_BWT4" , 1
H11 .usect "IIR_BWT4" , 1
H21 .usect "IIR_BWT4" , 1
H31 .usect "IIR_BWT4" , 1
H41 .usect "IIR_BWT4" , 1
H51 .usect "IIR_BWT4" , 1
H61 .usect "IIR_BWT4" , 1
XN_11 .usect "IIR_BWT4" , 1
XN_21 .usect "IIR_BWT4" , 1
XN_31 .usect "IIR_BWT4" , 1
YN_11 .usect "IIR_BWT4" , 1
YN_21 .usect "IIR_BWT4" , 1
YN_31 .usect "IIR_BWT4" , 1
XN_101 .usect "IIR_BWT4" , 1
XN_201 .usect "IIR_BWT4" , 1
XN_301 .usect "IIR_BWT4" , 1
YN_101 .usect "IIR_BWT4" , 1
YN_201 .usect "IIR_BWT4" , 1
YN_301 .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_BWT41_INIT:
;===============
LDP #Xin_IIR1
SPLK #0,Xin_IIR1
SPLK #0,Yout_IIR1
*Two order**********************
******fs=360Hz******
; SPLK #912, H01
; SPLK #1825, H11
; SPLK #912, H21
; SPLK #24173, H31
; SPLK #46303, H41
*****fs=400Hz******
; SPLK #1100,H01
; SPLK #2200,H11
; SPLK #1100,H21
; SPLK #23249,H31
; SPLK #47406,H41
*****fS=500Hz*****
; SPLK #1622,H01
; SPLK #3243,H11
; SPLK #1622,H21
; SPLK #20965,H31
; SPLK #49886,H41
*****fS=600Hz*****
; SPLK #2210,H01
; SPLK #4421,H11
; SPLK #2210,H21
; SPLK #18727,H31
; SPLK #52009,H41
*****fS=700Hz*****
; SPLK #2857,H01
; SPLK #5713,H11
; SPLK #2857,H21
; SPLK #16530,H31
; SPLK #53817,H41
*****fS=1000Hz*****
; SPLK #5081,H01
; SPLK #10161,H11
; SPLK #5081,H21
; SPLK #10161,H31
; SPLK #57658,H41
*****fS=1400Hz*****
; SPLK #8614,H01
; SPLK #17228,H11
; SPLK #8614,H21
; SPLK #2011,H31
; SPLK #59827,H41
*****fS=2000Hz*****
SPLK #15242,H01
SPLK #30484,H11
SPLK #15242,H21
SPLK #55374,H31
SPLK #57658,H41
*******************
*Three order*****fs=400Hz****** ???????
; SPLK #206,H01
; SPLK #619,H11
; SPLK #619,H21
; SPLK #206,H31
; SPLK #23677,H41
; SPLK #38535,H51
; SPLK #14087,H61
*****fS=500Hz***** ????????
; SPLK #371,H01
; SPLK #1113,H11
; SPLK #1113,H21
; SPLK #371,H31
; SPLK #32161,H41
; SPLK #42598,H51
; SPLK #11351,H61
*****fs=600Hz******
; SPLK #593,H01
; SPLK #1779,H11
; SPLK #1779,H21
; SPLK #593,H31
; SPLK #28836,H41
; SPLK #46155,H51
; SPLK #9111,H61
*****fs=700Hz******
; SPLK #875,H01
; SPLK #2624,H11
; SPLK #2624,H21
; SPLK #875,H31
; SPLK #25541,H41
; SPLK #49243,H51
; SPLK #7274,H61
*****fs=800Hz******
; SPLK #593,H01
; SPLK #1779,H11
; SPLK #1779,H21
; SPLK #593,H31
; SPLK #28836,H41
; SPLK #46155,H51
; SPLK #9111,H61
**********************
SPLK #0,XN_11
SPLK #0,XN_21
SPLK #0,XN_31
SPLK #0,YN_11
SPLK #0,YN_21
SPLK #0,YN_31
SPLK #0,XN_101
SPLK #0,XN_201
SPLK #0,XN_301
SPLK #0,YN_101
SPLK #0,YN_201
SPLK #0,YN_301
; SPLK #0,XN_100
; SPLK #0,XN_200
; SPLK #0,YN_100
; SPLK #0,YN_200
SPLK #0,WAY1
RET
;===========================================================================
; Routine Name: IIR_BWT4
;===========================================================================
IIR_BWT41:
SETC SXM ; Sign extension mode
SETC OVM ; Overflow mode
SPM 1 ; SPM set for Q15 multiplication
; SPM 0
LDP #Xin_IIR1
LACC WAY1
BCND IIR_11,GT
LACC #0
******************************(2 order)
LT H01
MPY Xin_IIR1
LTA H11
MPY XN_11
LTA H21
MPY XN_21
LTA H31
MPY YN_11
LTA H31
MPY YN_11
LTA H41
MPY YN_21
********************* *********(3 order)
; LT H01
; MPY Xin_IIR1
; LTA H11
; MPY XN_11
; LTA H21
; MPY XN_21
; LTA H31
; MPY XN_31
; LTA H41
; MPY YN_11
; LTA H41
; MPY YN_11
; LTA H51
; MPY YN_21
; LTA H51
; MPY YN_21
; LTA H61
; MPY YN_31
*********************************
APAC
SACH Yout_IIR1
BLDD #XN_11,XN_21
BLDD #Xin_IIR1,XN_11
BLDD #XN_21,XN_31
BLDD #YN_11,YN_21
BLDD #Yout_IIR1,YN_11
BLDD #YN_21,YN_31
LACC WAY1
ADD #1
SACL WAY1
B IIR_31
IIR_11 NOP
NOP
; LACC WAY
; SUB #1
; BCND IIR_2,GT
LACC #0
*************************************(2 order)
LT H01
MPY Xin_IIR1
LTA H11
MPY XN_101
LTA H21
MPY XN_201
LTA H31
MPY YN_101
LTA H31
MPY YN_101
LTA H41
MPY YN_201
**************************************(3 order)
; LT H01
; MPY Xin_IIR1
; LTA H11
; MPY XN_101
; LTA H21
; MPY XN_201
; LTA H31
; MPY XN_301
; LTA H41
; MPY YN_101
;
; LTA H41
; MPY YN_101
; LTA H51
; MPY YN_201
; LTA H51
; MPY YN_201
; LTA H61
; MPY YN_301
*************************************
APAC
SACH Yout_IIR1
BLDD #XN_101,XN_201
BLDD #Xin_IIR1,XN_101
BLDD #XN_201,XN_301
BLDD #YN_101,YN_201
BLDD #Yout_IIR1,YN_101
BLDD #YN_201,YN_301
LACC WAY1
; ADD #1
SUB #1
SACL WAY1
B IIR_31
;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_31 NOP
NOP
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -